将变量放在JavaScript正则表达式中

时间:2015-07-14 18:00:59

标签: javascript regex

我有一个像这样的正则表达式:

var reg = /http:\/\/s(\d+)\.de\.example\.com\/(.*?)\.php(.*)/i;

我想要一个变量,正是这个:ccode[i][2]代替.de

我该怎么做?谢谢你的帮助。

2 个答案:

答案 0 :(得分:3)

如果要在正则表达式模式中使用变量,则需要使用RegExp构造函数表示法,并且在其中,您需要双重转义特殊的正则表达式元字符。即。

icon: icons[markers[i][2]]

来自MDN

  

当您知道正则表达式模式将发生变化时,或者您不知道该模式并从其他来源(例如用户输入)获取该模式时,请使用构造函数。

示例代码:

var reg = new RegExp("http://s(\\d+)\\." + ccode[i][2] + "\\.example\\.com/(.*?)\\.php(.*)", "i");

答案 1 :(得分:0)

试试这个

var reg = '/http:\/\/s(\d+)\\'+ccode[i][2]+'\.example\.com\/(.*?)\.php(.*)/i';