Javascript регулярное выражение для замены чисел в последовательности - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь заменить числа в строке символом «X», который работает довольно хорошо, заменяя каждое отдельное число.

Это код:

 let htmlStr = initialString.replace(/[0-9]/g, "X");

Таким образом, в случае сценария, который initialString = "p3d8", результат будет "pXdX"

Целью являетсязаменить последовательность чисел одним «Х», а не каждым числом (в последовательности) по отдельности.Например:

Если initialString = "p348" с указанным выше кодом, будет вывод "pXXX".Как я могу сделать это "pX" - установить "X" для последовательности целых чисел.

Это выполнимо через регулярное выражение?

Любая помощь будет приветствоваться

Ответы [ 3 ]

0 голосов
/ 05 февраля 2019

Вы можете использовать + после [0-9] Это будет соответствовать любому номеру (не 0) числа.Проверьте Квантификаторы .для получения дополнительной информации

let initialString = "p345";
let htmlStr = initialString.replace(/[0-9]+/g, "X");
console.log(htmlStr);
0 голосов
/ 06 февраля 2019

Используйте токен \d, чтобы сопоставить любые цифры, объединенные с +, чтобы сопоставить одну или несколько.Завершение регулярного выражения с помощью g, глобального модификатора, заставит регулярное выражение искать все совпадения и не останавливаться на первом совпадении.

Вот хороший онлайн инструмент для работы с регулярным выражением.

const maskNumbers = str => str.replace(/\d+/g, 'X');

console.log(maskNumbers('abc123def4gh56'));
0 голосов
/ 05 февраля 2019

Попробуйте

let htmlStr = "p348".replace(/[0-9]+/g, "X");
let htmlStr2 = "p348ad3344ddds".replace(/[0-9]+/g, "X");

let htmlStr3 = "p348abc64d".replace(/\d+/g, "X");

console.log("p348           =>",htmlStr);
console.log("p348ad3344ddds =>", htmlStr2);
console.log("p348abc64d     =>", htmlStr3);

В регулярном выражении \d эквивалентно [0-9], плюс + означает, что мы сопоставляем хотя бы одну цифру (поэтому мы сопоставляем всю последовательность последовательных цифр),Подробнее здесь или механизм регулярных выражений здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...