我有一个表单字段,应该接受电子邮件或电话号码。我已经有了这段代码来验证电子邮件地址:
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;
}
但表单停止打印成功消息,并说电话号码无效。
答案 0 :(得分:0)
删除空格后如何测试电话号码?
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;
}