JavaScript:检查字符串是否包含'。' (满满的
这个问题在这里已经有了答案:
为什么会发生?
之所以_email.search(".");
每次返回0
都是因为String.prototype.search将正则表达式作为其输入。
.
意味着匹配正则表达式中的任何字符。 换句话说,如果你的输入至少有一个字符的任何东西,它将返回0。
解决方案
如果您只是将其更改为_email.search(/./);
,它将按照您的预期完成工作。
浏览器支持:所有已知的浏览器
如果你不关心浏览器的支持,你也可以使用_email.includes('.');
正如凯德布朗提到的那样。
请参阅此处以供参考。 浏览器支持:只有Chrome 41+和Firefox 40+(最近的浏览器)
你可以使用: string.includes(".")
这将返回true
或false
如果你想要1
或-1
,只需使用:
(x.includes(".")) ? 1 : -1
编辑:
经过多次搜索后,我碰到了:浏览器对array.include和其他选项的支持。
使用x.indexOf(".") > -1
search
将其参数解释为正则表达式,因此您需要将其转义.
带有(双)反斜杠,因为它会匹配任何字符:
var contains_dot = _email.search(".");
但是因为你不需要正则表达式,所以使用indexOf
会更简单:
var contains_dot = _email.indexOf(".");
链接地址: http://www.djcxy.com/p/2063.html
上一篇: JavaScript: check if string contains '.' (a full
下一篇: Check if a string contains a specific number in JavaScript