我有一个表单字段,应接受电子邮件或电话号码。我已经有此代码来验证电子邮件地址:
function validateEmail(email)
{
var re = /^(([^<>()[\]\\.,;:\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,}))$/;
return re.test(email);
}
但我还需要验证只能采用这种格式的电话号码:
+XXX XXX XXX XXX || +XXXXXXXXXXXX || XXX XXX XXX || XXXXXXXXX
如何添加该验证,以便验证该格式的电子邮件或电话?对不起,我是一个 javascript 初学者。谢谢!
我已经完成了此错误消息打印:
if(!validateEmail(signup_email))
{
show_error_msg('error_signup_email','<?php _e( 'Enter a valid email address or a phone number' ); ?>');
jQuery("#signup_email").focus();
return false;
}
<小时/>
进展: 我添加了一个验证电话号码的功能:
function validatePhone(email)
{
var re = /^\+?([0-9]{3})\)?[ ]?([0-9]{3})[ ]?([0-9]{3})[ ]?([0-9]{3})$/;
return re.test(email);
}
并将错误消息编辑为:
if((!validateEmail(signup_email)) || (!validatePhone(signup_email)))
{
show_error_msg('error_signup_email','<?php _e( 'Enter a valid email address or a phone number', 'Matrix' ); ?>');
jQuery("#signup_email").focus();
return false;
}
但是表单停止打印成功消息,并显示电话号码无效。
最佳答案
删除空格后测试电话号码怎么样?
function validatePhone(phone)
{
var re = /^(\+\d{3})?\d{9}$/;
return re.test(phone.replace(/\s+/g, ''));
}
此正则表达式是一个可选的加号前缀和 3 位数字,后跟 9 位数字。
将此与其他一些调整相结合,以下内容已经过测试并有效。
function validateEmail(email)
{
var re = /^(([^<>()[\]\\.,;:\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,}))$/;
return re.test(email);
}
if(!validateEmail(field) && !validatePhone(field))
{
show_error_msg('error_signup_email','Enter a valid email address or a phone number');
jQuery("#signup_email").focus();
return false;
}
关于javascript - 验证电子邮件或电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25836652/