【发布时间】:2011-03-16 00:40:41
【问题描述】:
我需要检查一个字符串是否以以下内容开头:"+="
我试过了
str.search("+="));
和
str.search("\+\="));
但得到
未捕获的语法错误:无效的常规 表达式:/+=/:无需重复
你能帮我解决这个问题吗,还推荐一个 JavaScript 正则表达式的好资源吗?
【问题讨论】:
标签: javascript regex
我需要检查一个字符串是否以以下内容开头:"+="
我试过了
str.search("+="));
和
str.search("\+\="));
但得到
未捕获的语法错误:无效的常规 表达式:/+=/:无需重复
你能帮我解决这个问题吗,还推荐一个 JavaScript 正则表达式的好资源吗?
【问题讨论】:
标签: javascript regex
试试这个正则表达式:
/^\+=/.test(str);
如果字符串以+= 开头,它将返回true。 ^(插入符号)表示“从字符串的开头匹配”。 + 需要转义,因为它是一个正则表达式元字符,意思是“前面的一个或多个”(这不是我们想要的)。
【讨论】:
您不需要正则表达式来针对固定子字符串进行测试。只需这样做:
str.indexOf("+=")===0
【讨论】:
您遇到的错误是因为+ 在正则表达式中具有特殊含义。这意味着“先前的模式被重复了 1 次或多次”。因此,要搜索文字 +,您需要使用反斜杠对字符进行转义。
另外,要在字符串的开头检查它,请以 ^ 开头您的正则表达式
因此,你想要的模式是^\+=
【讨论】:
一个选项(除其他外)是:
if(str.substr(0,2) == "+=")
而且我认为如果处理大字符串会是最快的。
【讨论】: