繁体   English   中英

javascript正则表达式:使用单词边界将变量传递给regexp

[英]javascript regular expression: passing variable to regexp using word boundary

我有以下字符串:

"u_1,u_3,u_4,u_5,u_6,u_7,u_8,u_10,u_11,u_13,u_14,u_15,u_16,u_17,u_18,u_20"

我想使用正则表达式来过滤让我们说“u_1”,但它不应该找到“u_11”或“u_13”,即它需要完全匹配。 到现在为止还挺好。 此外,我想要过滤的字符串将作为变量传递。 到目前为止我所拥有的是以下内容:

var str = "u_1,u_3,u_4,u_5,u_6,u_7,u_8,u_10,u_11,u_13,u_14,u_15,u_16,u_17,u_18,u_20";
var setName = "u_1";
var re = new RegExp('/\b('+setName+')\b/g');
str.match(re);

不幸的是我的regexp使用setName变量有问题,但我无法弄清楚如何修复它。

删除正斜杠并再次退出反斜杠。 修饰符作为RegExp构造函数中的单独参数传递。

var re = new RegExp("\\b("+setName+")\\b", "g");

例:

> var str = "u_1,u_3,u_4,u_5,u_6,u_7,u_8,u_10,u_11,u_13,u_14,u_15,u_16,u_17,u_18,u_20";
undefined
> setName = "u_1";
'u_1'
> var setName = "u_1";
undefined
> var re = new RegExp("\\b("+setName+")\\b", "g");
> re
/\b(u_1)\b/g
> str.match(re)
[ 'u_1' ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM