JavaScript:检查字符串是否包含'。' (满满的

这个问题在这里已经有了答案:

  • 如何检查一个字符串是否包含JavaScript中的子字符串? 49个答案

  • 为什么会发生?

    之所以_email.search("."); 每次返回0都是因为String.prototype.search将正则表达式作为其输入。

    . 意味着匹配正则表达式中的任何字符。 换句话说,如果你的输入至少有一个字符的任何东西,它将返回0。


    解决方案

    如果您只是将其更改为_email.search(/./); ,它将按照您的预期完成工作。

    浏览器支持:所有已知的浏览器

    如果你不关心浏览器的支持,你也可以使用_email.includes('.'); 正如凯德布朗提到的那样。

    请参阅此处以供参考。 浏览器支持:只有Chrome 41+和Firefox 40+(最近的浏览器)


    你可以使用: string.includes(".")这将返回truefalse

    如果你想要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