我有一个自由撰稿人很久以前写过的剧本,到目前为止工作正常。该脚本只是根据某些匹配规则检查表单中的电子邮件地址,并返回true / false。问题是由于某种原因,它无法识别具有非常简单的firstInitialLastName@domain.com语法的电子邮件地址(没有额外的句点或字符等)。
我不懂javascript以及我理解PHP,所以如果有人能告诉我为什么这个脚本会对我上面指定格式的电子邮件地址返回false,我会非常感激。
function check_email(str) {
var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
if (!str.match(re)) {
return false;
} else {
return true;
}
}
答案 0 :(得分:0)
它应该有效,RegExp有效。
您确定您的电子邮件在结尾/开头被裁减了空格吗?如果有人会在结尾处留下一个尾随空格或者在开头悬挂一个尾随空格它将无法正常工作,因为它只接受开头的字母数字字符和结尾处的a-zA-Z字符(域)。空白是我唯一能够打破它的东西。
你可以稍微重构一下并缩短以简单地返回匹配值,因为它返回匹配数组或null(在比较中等于false)
function check_email(str) {
return str.match(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/);
}