【问题标题】:How to use a variable inside a RegEx pattern? [duplicate]如何在 RegEx 模式中使用变量? [复制]
【发布时间】:2018-01-09 03:07:06
【问题描述】:

此代码的用途是仅显示输入的最后四位。

这里我想用变量 'mask'4' /em>' 。类似的东西。

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

请给点建议

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

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

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

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

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

    另请参阅(并投票支持):

    【讨论】:

    • 非常感谢,伙计。现在可以了。 “文字 /../ 形式不能与动态内容一起使用。”这条线是最有帮助的。
    • 如何将文字形式转换为新的 RegExp 可以使用的形式?只是删除 / 似乎不起作用
    • @CrhistianRamirez - 这取决于“/literal/”中的内容。正则表达式的结果字符串必须是有效的。
    • 原来我没有转义一些我应该拥有的字符。特别是反斜杠
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 2018-10-23
    • 2020-07-20
    • 1970-01-01
    • 2021-07-16
    相关资源
    最近更新 更多