Javascript正则表达式按顺序替换数字

时间:2019-02-05 19:47:22

标签: javascript regex

我正在尝试用字符“ X”替换字符串中的数字,通过替换每个单独的数字,效果很好。

此代码:

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

因此,在initialString = "p3d8"输出为“ pXdX”

的情况下

目标是用单个“ X”代替数字序列,而不是用序列号中的每个数字代替。例如:

如果initialString = "p348",则使用上面的代码,输出将为“ pXXX”。如何将其设置为“ pX”-为整个数字序列设置“ X”。

通过正则表达式可以吗?

欢迎任何帮助

3 个答案:

答案 0 :(得分:5)

尝试

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],加号+表示我们匹配至少一位数字(因此我们匹配整个连续数字序列)。更多信息here或正则表达式机制电影here

答案 1 :(得分:3)

您可以在+之后使用[0-9],它将与任何数字(非0)匹配。选中 Quantifiers 。了解更多信息

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

答案 2 :(得分:0)

使用\d令牌来匹配与+组合的任何数字以匹配一个或多个。以全局修饰符g结尾的正则表达式将使正则表达式查找所有匹配项,而不是在第一个匹配项上停止。

这里是使用正则表达式的不错的online tool

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

console.log(maskNumbers('abc123def4gh56'));