我们有一个文本框,接受逗号分隔的电子邮件地址.正则表达式是
^(\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*\s*[,]?\b)*$.
但是现在我无法为此表达式添加长度验证.每个电子邮件地址不得超过150个字符.我试过了
^((\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)){1,150}\s*[,]?\b)*$.
但它不起作用.
你能否修改正则表达式,以便它也实现这个验证.
解决方法
我宁愿不要进一步使这个正则表达式复杂化,并在检查电子邮件匹配之前添加显式长度检查.在JavaScript中,它将类似于以下内容:
function validateEmail(email) { var regex = /^(\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*\s*[,]?\b)*$/; // 20 is used instead of 150 for sake of example return email.length <= 20 && regex.test(email); } // validateEmail("jdoe@example.com") == true // validateEmail("loooooooooooooooooooonjohn@example.com") == false
顺便说一下,你的正则表达式中$后面的点似乎是一个错误,所以我在我的片段中跳过它.