关于javascript:如何在RegEx模式中使用变量?

How to use a variable inside a RegEx pattern?

本问题已经有最佳答案,请猛点这里访问。

此代码的用法是只显示输入的最后四位数字。

这里我想替换这个"(/"(?=.4)/g,'*')"'4'带变量'mask'。像那样。

1
x.value = x.value.replace(/.(?=.{+mask+})/g, '*');

有什么建议吗?

1
2
3
4
function myFunction(mask) {
    var x = document.getElementById("cc");
    x.value = x.value.replace(/.(?=.{4})/g, '*');
}
1
<input type="text" id="cc" onkeyup="myFunction(4)" style="text-align:right">


使用new RegExp(string)动态构建正则表达式。文字/../形式不能与动态内容一起使用。

在构建字符串之后,确保有一个有效的模式。

1
2
3
var len = 99;
var re = new RegExp(".(?=.{" + len +"})","g");
var output = input.replace(re,"*")

另见(和投票支持被骗者):

  • 如何在正则表达式中使用变量?