如何在RegEx模式中使用变量?

xyz*_*abc 10 javascript regex

使用此代码只显示输入的最后四位数字.

在这里,我想用变量' mask ' 替换这个"(/.(?=.{ {{}}/g,'*')" '4 '.这样的事情.

x.value = x.value.replace(/.(?=.{+mask+})/g, '*');
Run Code Online (Sandbox Code Playgroud)

任何建议PLZ

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

use*_*740 21

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

确保在构建字符串后具有有效模式.

var len = 99;
var re = new RegExp(".(?=.{" + len + "})", "g");
var output = input.replace(re, "*")
Run Code Online (Sandbox Code Playgroud)

另见(并投票给dupe):

  • 非常感谢,伙计.它现在有效."文字/../表单不能与动态内容一起使用." 这条线是最有帮助的. (4认同)
  • 事实证明我并没有逃避一些我应该拥有的角色。特别是反斜杠 (2认同)