Как использовать регулярное выражение для удаления подстроки из начала строки на основе условия в javascript? - PullRequest
0 голосов
/ 07 мая 2020

У меня есть такая строка

term = "Hey there how you doing?"

Теперь из-за некоторых проблем в API я иногда получаю undefined в начале строки.

term = "#0undefinedHey there how you doing?"

OR

term = "#1undefined Hey there how you doing?"

Теперь я могу проверить наличие undefined в начале предложения, выполнив что-то вроде

if(term.indexOf("undefined") == 0) {
    //processing logic
}

Но, как вы можете видеть, присутствует #n с undefined, где n может быть любым одиночным числом di git.

Я хочу, чтобы решение с регулярным выражением игнорировало #n и искало undefined в начале предложения и удаляло #n и undefined.

Таким образом, последняя строка, если присутствует undefined, будет

term = "Hey there how you doing?" // removed #nundefined

Как я могу сделать это с помощью регулярного выражения?

Ответы [ 2 ]

1 голос
/ 07 мая 2020

Если этот номер рядом с undefined имеет какое-то значение для вас, вы можете попробовать:

const matches = "#1undefined Hey there how you doing?".match(/#([0-9]*)undefined ?(.*)/);
console.log(matches);

Это даст вам номер под matches[1], в то время как ваше очищенное сообщение будет на matches[2].


Если вы просто заботитесь о сообщение, вы можете использовать .replace, поскольку другой пользователь предложил очистить ваш вывод:

const output = "#1undefinedHey there how you doing?".replace(/#([0-9]*)undefined ?/, '');
console.log(output);
1 голос
/ 07 мая 2020

let s = "#0undefined Hello World!";
console.log(s.replace(/^\#[0-9]*undefined\s*/,''));

const regex = RegExp('^\#[0-9]*undefined');
console.log('Has undefined = ' + regex.test(s));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...