改进了电子邮件验证



我有以下用于电子邮件验证的正则表达式

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$/;

此解决方案或类似解决方案的唯一问题是123@domain.com传递此正则表达式。

我不希望任何电子邮件都以数字开头。

^[a-zA-Z0-9.!#$%&'+/=?^_`{|}~-]+@

这是正则表达式的一部分,它将所有内容都匹配到@分隔符。CCD_ 2。匹配任何数字。因此,在此之前创建一个与0-9不匹配的新短语。然后将量词(当前为+,至少为1(更改为*(0或更多(,这样只有一个字符的电子邮件就可以工作(当然,只要它不是数字(。

^[a-zA-Z.!#$%&'+/=?^_`{|}~-][a-zA-Z0-9.!#$%&'+/=?^_`{|}~-]*@

请参阅https://regex101.com/r/qjdZ0A/1作为交互式示例。

在电子邮件的表达式前面加上一个否定的展望。。。

^(?![0-9])+[a-zA-Z0-9.!#$%&'+=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)$
_________

只有当第一个字符不是0-9时,这才匹配电子邮件

reg07就是您所需要的。

代码包括构建的过程

const stringToTest = "zaz234@microshit.kazo"
// Ideal
const regex = new RegExp('(^[^@.]+)@([^@.]+).{1}(w{1,6}$)');
const reg = /(^(.+?))@(.+?).(w{1,6})/;
const reg00 = /(^(.+)@)/;
const reg01 = /(^[^@]+)@/;
const reg02 = /(^[^@]+)@([^@]+)/;
const reg03 = /(^[^@]+)@([^@]+).{1}/;
const reg04 = /(^[^@]+)@([^@]+).{1}(w+)/;
const reg05 = /(^[^@]+)@([^@]+).{1}(w{2,4})/;
const reg06 = /(^[^@]+)@([^@]+).{1}(w{1,6}$)/;
const reg07 = /(^[^@.]+)@([^@.]+).{1}(w{1,6}$)/;
console.log(`We are testing this RexEx:n${reg07}nnTo see if matches this string:n${stringToTest}nnResults:`)
const booleanReg = reg07.test(stringToTest) 
const arrayReg = reg07.exec(stringToTest)
console.log(`1.Simeple Match:n${booleanReg}n2.Array Match:n${arrayReg}`)
const emailInfo = {
emailUserName: arrayReg[1],
emailProvider: arrayReg[2],
emailExtention: arrayReg[3]
}
console.log(`nnemail objet build:nn`, emailInfo)

相关内容

  • 没有找到相关文章

最新更新