Как добавить "-" между цифрами и буквами - PullRequest
0 голосов
/ 06 августа 2020

Я извлекаю слова, содержащие как цифры, так и буквы, из строки

Ввод: 'Это результат теста 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);

1 Ответ

0 голосов
/ 06 августа 2020

См. Возможное решение для требуемого результата. дайте мне знать, если вам понадобится дополнительная помощь. спасибо

let str0 = "This is 78acb78 test result1 and 1test";
        let str1 = "This is 78acb78 test result1 and 1test";
        

        /* Answer to output 1 >> extracting alphanumeric only from string*/
        function extractAlphanumericOnly(str){
            
                
            /*converting string to array*/
            str = str.split(' ');
            
            /*removing only alpha values from array*/
            for (i = 0; i < str.length; i++) {
              
              if (!/[^a-zA-Z]/.test(str[i])){
                 str.splice(i,1,'');
              }else{
                /*else code here*/
              }

            }
            
            /*removing indexes with space only*/
            str = str.filter(function(str) {
                return /\S/.test(str);
            });
            
            return str;

        }

        /* Answer to output 2 >> adding hyphen "-" with alpha numeric */
        function addDashToAlphanumericValues(str){
            

            /*separating and makign array of characters and numbers*/
            str = str.match(/[a-z]+|[^a-z]+/gi);


            /*removing indexes with space only*/
            str = str.filter(function(str) {
                return /\S/.test(str);
            });

            /*removing space within values */
            str = str.map(function (el) {
                return el.trim();
            });

            /* converting to string, replacing commas with '-' character*/
            return str = str.toString().split(',').join('-');
        
        }


        console.log("Output for requirement1: " + extractAlphanumericOnly(str0));
        console.log("Output for requirement 2: " + addDashToAlphanumericValues(str1));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...