正则表达式电子邮件特殊字符验证

时间:2018-01-25 11:01:18

标签: php regex validation

我需要使用特殊字符进行正则表达式电子邮件验证。

规则:

  • 本地部分可能有2个或更多字符长度
  • 本地部分包含特殊字符&可能无法启动&以特殊性格结束。
  • @
  • 后仅允许a-z-A-Z0-9

当前正则表达式:

eee123@eee.eee > TRUE
e#e@eee.eee > TRUE
e#2@eee.eee > TRUE
ee@eee.eee > FALSE
e2@eee.eee > FALSE
#e@eee.eee > FALSE
e#@eee.eee > FALSE

测试模式:

eee123@eee.eee > TRUE
e#e@eee.eee > TRUE
e#2@eee.eee > TRUE
ee@eee.eee > TRUE
e2@eee.eee > TRUE
#e@eee.eee > FALSE
e#@eee.eee > FALSE

我需要一个可以验证的正则表达式:

<select data-bind="options: model.availableCountries"></select>

2 个答案:

答案 0 :(得分:1)

^[a-zA-Z0-9]+([\w\.\'\!\#\$\%\&\*\+\-\/\=\?\^\`\{\|\}\~])*([a-zA-Z0-9])+@([a-zA-Z0-9]+\.)+[a-zA-Z0-9]{2,8}$

只需用*或?替换+在([\w\.\'\!\#\$\%\&\*\+\-\/\=\?\^\ {\ |} \〜])`之后,它将符合您的预期。 根据需要更新。

答案 1 :(得分:1)

虽然你有答案,但请注意,你不必逃避方括号中的所有内容,这意味着:

CrossDeviceInfoHelper.GetLocalImageUrlByPlatform(myDictionary[value]);

做同样的事情,到目前为止更具可读性。此外,^ [a-zA-Z0-9]+ ([-.'!#$%&*+-\/=?^`{|}~]*) ([a-zA-Z0-9])+ @ ([a-zA-Z0-9]+\.)+ [a-zA-Z0-9]{2,8} $ 应该在>括号中

<小时/> 作为旁注,我更倾向于使用更简单的表达式*,并且实际上尝试向该地址发送电子邮件 - 电子邮件地址往往比以前想象的更复杂。