我需要检查字符串是否以以下内容开头:“+ =”
我试过
str.search("+="));
和
str.search("\+\="));
但是
Uncaught SyntaxError:无效的常规 表达式:/ + = /:无需重复
你能帮我解决这个问题,并为JavaScript正则表达式推荐一个很好的资源吗?
答案 0 :(得分:9)
试试这个正则表达式:
/^\+=/.test(str);
如果字符串以true
开头,它将返回+=
。 ^
(插入符号)表示“从字符串的开头匹配”。 +
需要被转义,因为它是一个正则表达式元字符,意思是“前面的一个或多个”(这不是我们想要的)。
答案 1 :(得分:5)
您不需要正则表达式来测试固定的子字符串。就这样做:
str.indexOf("+=")===0
答案 2 :(得分:4)
你得到的错误是因为+
在正则表达式中具有特殊含义。它意味着“先前的模式被预先放置1次或更多次”。因此,要搜索文字+
,您需要使用反斜杠转义字符。
另外,要在字符串的开头检查它,请使用^
因此,您想要的模式是^\+=
答案 3 :(得分:3)
一个选项(除其他外)将是:
if(str.substr(0,2) == "+=")
我认为如果处理大字符串会是最快的。