Why doesn't using the search method to find a . work the way I expect in JavaScript?
在我的JS代码中,我正在尝试验证电子邮件地址。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var validateEmail = function () { var email = $("email").value; var symbol = email.search("@"); var domain = email.substring(email.indexOf('@')).substr(1); var validDomain = domain.search("."); if (symbol == -1) { alert(email +" is not a valid email address."); } else if (validDomain == -1) { alert(email +"is not a valid domain name."); } else { alert(email +" is a valid email address."); } }; |
我确信有更好的方法来验证电子邮件地址,但我的方法是使用JS属性和方法进行实践。学习简单的基本知识。甚至不确定这个例子是否是最佳实践。
问题是:
1 | var validDomain = domain.search("."); |
号
不是从字符串中提取句点。有人能指出我这里的问题吗?
这是jfiddle:http://jsfiddle.net/udv7q/
主要问题是
1 | var validDomain = domain.search(/\./); |
演示:http://jsfiddle.net/h4hx5/
注意,这个简单的验证并不能确保输入是有效的电子邮件。有一个规范定义了什么是有效的电子邮件,它比这要复杂得多。但如果它对你有用,那就太好了;通常很难完全验证电子邮件:)
参考文献:
- https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/string/search