2

如果这似乎是一个愚蠢的问题,我深表歉意,但是我将如何搜索字符串以查看它是否包含句点?我试过搜索:

var p="This is text without a period, What now?"

alert(p.search("."));

我的印象是它应该返回-1,因为那句话中没有句号。但是,它总是返回 0。

我错过了什么吗?

4

3 回答 3

11

有很多方法可以做到这一点,我可能会使用indexOf()来查看字符串中是否存在字符:

alert( p.indexOf(".") != -1 ); // true or false

根据 MDN,search() “执行搜索正则表达式和此 String 对象之间的匹配。”,因此将是:

alert( p.search(/\./) );

这会给你-1,句号在正则表达式中有特殊含义,必须转义。

于 2013-05-02T14:59:31.473 回答
2

如果您想坚持使用正则表达式,则需要转义.,因为它是一个特殊的正则表达式字符。要在 JavaScript Regex 中转义点,您需要将其“转换”为字符类。这是通过[].

alert(p.search("[.]"));

工作小提琴

于 2013-05-02T15:06:14.023 回答
0

为此使用indexOf()字符串的方法

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/indexOf

于 2013-05-02T15:01:40.880 回答