JavaScript:检查字符串是否包含 '.' (一个句号)

Rea*_*ode 0 javascript forms string search

我正在尝试搜索字符串以查看它是否包含句点“。” 我将输入字段的值加载到变量中,然后在该变量上运行 javascript 字符串 search() 方法。

var _email = document.getElementById(Input).value;
var contains_dot = _email.search(".");
Run Code Online (Sandbox Code Playgroud)

如果在字符串中找不到句点或表示匹配位置的数字,则 contains_dot 变量应返回 -1。

可悲的是......变量'contains_dot'每次只返回0。难道我做错了什么?..有没有更好的办法?

请注意:

contains_dot = _email.indexOf(".");
Run Code Online (Sandbox Code Playgroud)

不适用于此问题,因为无论输入如何,它都会返回 0。

use*_*130 10

为什么会这样?

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

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


解决方案

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

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

如果你不关心浏览器支持,你也可以使用_email.includes('.');Cade Brown 提到的。

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