此代码始终发出警报"null",这意味着该字符串与表达式不匹配.
var pattern = "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$";
function isEmailAddress(str) {
str = "azamsharp@gmail.com";
alert(str.match(pattern));
return str.match(pattern);
}
Run Code Online (Sandbox Code Playgroud)
Jam*_*mes 75
如果将正则表达式定义为字符串,则需要对所有反斜杠进行转义,因此不应使用'\ w'代替'\ w'.
或者,将其定义为正则表达式:
var pattern = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/;
Run Code Online (Sandbox Code Playgroud)
顺便说一句,请不要在客户端验证电子邮件地址.无论如何,你的正则表达式太简单了,无法通过实现.
在这里看到真实的东西:http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
小智 27
这是我在我的页面上使用的那个.
http://www.zparacha.com/validate-email-address-using-javascript-regular-expression/
/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/
小智 14
我一直在使用这个功能.它返回一个布尔值.
// Validates email address of course.
function validEmail(e) {
var filter = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/;
return String(e).search (filter) != -1;
}
Run Code Online (Sandbox Code Playgroud)
function isEmailAddress(str) {
var pattern =/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
return pattern.test(str); // returns a boolean
}
Run Code Online (Sandbox Code Playgroud)
更简单的正则表达式
这里是 :
var regexEmail = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
var email = document.getElementById("txtEmail");
if (regexEmail.test(email.value)) {
alert("It's Okay")
} else {
alert("Not Okay")
}
Run Code Online (Sandbox Code Playgroud)
祝好运.
有时,大多数注册和登录页面都需要验证电子邮件.在此示例中,您将学习简单的电子邮件验证.首先在html中输入文本输入和这样的按钮输入
<input type='text' id='txtEmail'/>
<input type='submit' name='submit' onclick='checkEmail();'/>
<script>
function checkEmail() {
var email = document.getElementById('txtEmail');
var filter = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
if (!filter.test(email.value)) {
alert('Please provide a valid email address');
email.focus;
return false;
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
您也可以使用此正则表达式进行检查
<input type='text' id='txtEmail'/>
<input type='submit' name='submit' onclick='checkEmail();'/>
<script>
function checkEmail() {
var email = document.getElementById('txtEmail');
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!filter.test(email.value)) {
alert('Please provide a valid email address');
email.focus;
return false;
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
检查此演示输出,您可以在此处查看
function checkEmail() {
var email = document.getElementById('txtEmail');
var filter = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
if (!filter.test(email.value)) {
alert('Please provide a valid email address');
email.focus;
return false;
}
}Run Code Online (Sandbox Code Playgroud)
<input type='text' id='txtEmail'/>
<input type='submit' name='submit' onclick='checkEmail();'/>Run Code Online (Sandbox Code Playgroud)
如果电子邮件无效则提供警报消息,如果有效电子邮件则没有警报消息.有关正则表达式的更多信息
https://www.w3schools.com/jsref/jsref_obj_regexp.asp
希望它会对你有所帮助
电子邮件验证很容易出错.因此,我建议您使用Verimail.js.
为什么?
Verimail.js的另一个好处是它对最常见的电子邮件域和注册的TLD有拼写建议.对于拼错常见域名的用户,例如gmail.com,hotmail.com,aol.com,aso,这可以大大降低您的跳出率.
例:
如何使用它?
最简单的方法是在您的页面上下载并包含verimail.jquery.js.之后,通过在需要验证的输入框上运行以下函数来连接Verimail:
$("input#email-address").verimail({
messageElement: "p#status-message"
});
Run Code Online (Sandbox Code Playgroud)
message元素是一个可选元素,它显示一条消息,例如"Invalid email .."或"你的意思是test@gmail.com?".如果您有表单并且只想验证电子邮件,则可以使用函数getVerimailStatus,如下所示:
if($("input#email-address").getVerimailStatus() < 0){
// Invalid email
}else{
// Valid email
}
Run Code Online (Sandbox Code Playgroud)
getVerimailStatus函数根据Comfirm.AlphaMail.Verimail.Status对象返回整数代码.如上所示,如果状态是负整数值,则应将验证视为失败.但如果该值大于或等于0,则应将验证视为成功.
| 归档时间: |
|
| 查看次数: |
334377 次 |
| 最近记录: |