如果这看起来像一个愚蠢的问题我很抱歉,但我怎样才能搜索字符串以查看它是否包含句点?我试过搜索:
var p="This is text without a period, What now?"
alert(p.search("."));
我的印象是它应该返回-1,因为该句中没有句号。但是,它总是返回0.
我错过了什么吗?
答案 0 :(得分:11)
有很多方法可以做到这一点,我可能会使用indexOf()来查看字符串中是否存在字符:
alert( p.indexOf(".") != -1 ); // true or false
根据MDN,search()“执行搜索正则表达式与此String对象之间的匹配。”,这样就是:
alert( p.search(/\./) );
会给你-1
,并且句号在正则表达式中具有特殊含义,必须进行转义。
答案 1 :(得分:2)
如果你想坚持使用正则表达式,你将需要转义.
,因为它是一个特殊的正则表达式字符。要在JavaScript Regex中转义点,您需要将其“转换”为字符类。这是通过[]
完成的。
alert(p.search("[.]"));
答案 2 :(得分:0)