Javascript中的电子邮件验证-如何添加额外条件
我需要验证电子邮件地址,除了基本结构之外,我还需要Javascript中的电子邮件验证-如何添加额外条件,javascript,email-validation,Javascript,Email Validation,我需要验证电子邮件地址,除了基本结构之外,我还需要 电子邮件地址不能以特殊字符开头或结尾 电子邮件地址不能有双重特殊字符 编辑 特殊字符是 !#$%&'*+-/=?^`{|}~ 性格。(句点、句点或句号)前提是它不是第一个或最后一个字符,并且不会一个接一个出现 这就是我到目前为止所做的,它只是验证了基本结构 function emailIsValid (email) { return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email) } 如何添加上述
- 电子邮件地址不能以特殊字符开头或结尾
- 电子邮件地址不能有双重特殊字符 编辑 特殊字符是 !#$%&'*+-/=?^`{|}~
function emailIsValid (email) {
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)
}
如何添加上述两个条件?多谢各位
编辑
有效地址
jen@gmail.com
jen@company.gov.ca
jen.doe@gmail.com
jen123@gmail.com
无效
@jen@gmail
jen@gmail
.jen@gmail.com
jen.@gmail.com
&jen@gmail.com
jen@gmail.com.
你有三个选择
常量禁止\u终端\u字符=[
`!`,
`#`,
`$`,
`%`,
`&`,
`'`,
`*`,
`+`,
`-`,
`/`,
`=`,
`?`,
`^`,
`_`,
“`',//勾号周围的单引号
`{`,
`|`,
`}`,
`~`
]
功能emailIsValid(电子邮件){
让syntaxGood=/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(电子邮件)
if(!syntaxGood)返回false//如果我们已经失败,则跳过循环
for(让badChar成为禁止的\u终端\u字符){
if(email.startsWith(badChar)| | email.endsWith(badChar)){
return false//提前终止
}
}
返回真值
}
这可能是你的第二个最佳选择
如何对正则表达式进行编码的细节将取决于特定的禁止字符列表。因此,如果您希望So上的任何人尝试该代码,您必须提供完整的列表。什么是特殊字符?@jabaa编辑,谢谢!您的验证未找到所有有效地址:根据
“@example.org
是有效的电子邮件地址。如果您不支持官方RFC,您应该描述支持的模式。如果您要求使用正则表达式解决方案,那么您应该包括示例输入和预期结果(通过/失败)。请参阅:@JDB done!添加了一些示例,如选项2。我同意你的观点,但我的老板希望得到客户的认可,所以。。。