it-swarm-ru.tech

удаление чисел из строки?

удаление чисел из строки

 questionText = "1 Ding ?"

я хочу заменить этот номер и номер вопроса, номер может быть любым числом, я попробовал следующий код, который не работает 

  questionText.replace(/[0-9]/g, '');
59
kiran

Очень близко, попробуйте:

questionText = questionText.replace(/[0-9]/g, '');

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

var withNoDigits = questionText.replace(/[0-9]/g, '');

Последний трюк для удаления целых блоков цифр одновременно, но этот может зайти слишком далеко:

questionText = questionText.replace(/\d+/g, '');
121
Kobi

Строка immutable , поэтому questionText.replace(/[0-9]/g, ''); сама по себе работает, но не меняет строку questionText. Вам нужно будет присвоить результат замены другой String-переменной или снова самому queryText.

var cleanedQuestionText = questionText.replace(/[0-9]/g, '');

или за один раз (используя \d+, см. ответ Коби):

 questionText = ("1 Ding ?").replace(/\d+/g,'');

и если вы хотите обрезать начальное (и конечное) пространство (я), пока вы на нем:

 questionText = ("1 Ding ?").replace(/\d+|^\s+|\s+$/g,'');
10
KooiInc

Вы замечательно близки.

Вот код, который вы написали в вопросе:

questionText.replace(/[0-9]/g, '');

Код, который вы написали, действительно смотрит на переменную questionText и производит вывод, который является исходной строкой, но цифры заменяются пустой строкой.

Однако он не присваивает его автоматически обратно исходной переменной. Вам нужно указать, что назначить:

questionText = questionText.replace(/[0-9]/g, '');
8
Spudley

Просто хочу добавить, так как это может быть кому-то интересно, что вы можете думать о проблеме и по-другому. Я не уверен, если это представляет интерес здесь, но я считаю это актуальным.

Под другим я подразумеваю, что нужно сказать: «Уберите все, что не то, что я ищу», то есть, если вам нужен только «Дин», вы можете сказать:

var strippedText = ("1 Ding?"). replace (/ [^ a-zA-Z]/g, '');

Что в основном означает «удалить все, что является nog a, b, c, d .... Z (любая буква).

1
qrikko

Это можно сделать без regex, что более эффективно:

var questionText = "1 Ding ?"
var index = 0;
var num = "";
do
{
    num += questionText[index];
} while (questionText[++index] >= "0" && questionText[index] <= "9");
questionText = questionText.substring(num.length);

И в качестве бонуса, он также хранит номер, который может быть полезен для некоторых людей.

0
Dan Bray