【问题标题】:Add more than one variable in Javascript to work with the RegEx function在 Javascript 中添加多个变量以使用 RegEx 函数
【发布时间】:2016-09-10 22:34:59
【问题描述】:

This 帖子详细介绍了如何在正则表达式中包含变量,但它只显示了如何包含一个变量。我目前正在使用正则表达式的匹配函数来查找前导字符串和尾随字符串之间的字符串。我的代码如下:

array = text.match(/SomeLeadingString(.*?)SomeTrailingString/g);

现在,我如何构造一个与此具有相同功能的正则表达式,但我希望能够在外部创建它们,而不是在表达式中实际使用两个字符串,如下所示:

var startString = "SomeLeadingString"
var endString = "SomeTrailingString"

那么,我的最后一个问题是,如何将 startString 和 endString 包含到我上面列出的正则表达式中,以便功能相同?谢谢!

【问题讨论】:

    标签: javascript regex string match


    【解决方案1】:

    使用RegExp 对象将字符串连接到正则表达式

    const reg = new RegExp(`${startString}(\\w+)${endString}`,"g");
    const matches = text.match(reg);
    

    注意

    连接字符串时,建议对none regex字符串进行转义:(转义模式取自this答案)

    const escapeReg = (str)=>str.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');

    示例

    我们有字符串(.*)hello??,我们想匹配(.*)??之间的单词

    我们会做这样的事情:

    const prefix = "(.*)";
    const suffix = "??";
    const reg = new RegExp(`${escapeReg(prefix)}(\\w+)${escapeReg(suffix)}`);
    const result = "(.*)hello??".match(reg);
    if(result){
       console.log(result[1]); //"hello"
    }
    

    【讨论】:

    • 太棒了,这正是我想要的。我会尽快接受。
    猜你喜欢
    • 2012-11-20
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多