我相信这是一个简单的问题,但我在网上找不到。
此代码:
var new_html = "foo and bar(arg)";
var bad_string = "bar(arg)";
var regex = new RegExp(bad_string, "igm");
var bad_start = new_html.search(regex);
将bad_start设置为-1(未找到)。如果我删除(arg),它将按预期运行(bad_start == 8)。我是否可以做一些事情来使(非常方便的)"new Regexp"语法工作,或者我必须找到其他方法?这个例子很简单,但在真正的应用程序中,它将执行全局搜索和替换,所以我需要regex和"g"。或者我需要吗?
短暂性脑缺血发作
3条答案
按热度按时间i34xakig1#
用双反斜杠\转义括号。试试这个。
yzuktlbb2#
RegEx定义字符串应为:
使用RegEx时需要对特殊字符进行转义,并且由于您是在字符串中构建RegEx,因此需要对转义字符P进行转义
http://www.regular-expressions.info/characters.html
svdrlsy43#
您需要转义字符串中包含的特殊字符,您将从该字符串创建Regex。例如,定义以下函数:
并使用它将结果赋给
bad_string
变量: