Я извлекаю слова, содержащие как цифры, так и буквы, из строки
Ввод: 'Это результат теста 78acb78 и 1 тест'.
Выход для требования 1: Соответствующие слова: '78acb78, result1, 1test'
Теперь я могу найти слово, включающее как цифры, так и буквы.
Но я хочу добиться результата с помощью '-' персонаж. Для совпадающих слов нам нужно добавить «-» до или после него, в зависимости от позиции. Если вверху предложения, мы добавим «-» после чисел и напротив конца предложения. Если он присутствует между ними, у нас всегда есть «-» до + после + обоих (3 случая).
Вывод для требования 2: '78-acb78, 78-acb-78, 78acb- 78, результат-1, 1-тест '
Как я могу получить такой результат? Теперь это мой код.
let str = 'This is 78acb78 test result1 and 1test';
// ^ # start of input
// (?=.*?\d) # lookahead to make sure at least one digit is there
// (?=.*?[a-zA-Z]) # lookahead to make sure at least one letter is there
// [a-zA-Z\d]+ # regex to match 1 or more of digit or letters
// $ # end of input
const checkWordMatched = (str) => {
let strRegex = /^(?=.*?\d)(?=.*?[a-zA-Z])[a-zA-Z\d]+$/;
let wordMatched = (str.split(" ")).filter(word => {
if (strRegex.test(word)) {
return word;
}
})
return wordMatched;
}
const processText = (inputText) => {
let checkNumber = /^[\d]+$/;
let newText = inputText.match(/[a-z]+|[^a-z]+/gi);
return newText;
}
let newArr = checkWordMatched(str);
let newRes = [];
console.log("Matched Words:" + newArr);
const result = newArr.map(item => {
return processText(item);
})
console.log(result);