我有两个正则表达式,我需要加入一个,因为我在ASP.NET中使用RegularExpressionAttribute并且它不允许多个实例。
如何将以下两个正则表达式合并为一个?
.*?@(?!.*?\.\.)[^@]+$
[\x00-\x7F]
第一个检查电子邮件的域部分中没有2个连续点,第二个正则表达式检查所有字符是否为ascii
我认为它可能像加入(.*?@(?!.*?\.\.)[^@]+$)([\x00-\x7F])
一样容易,但这不起作用
以前是关于此问题的帖子的link
编辑:我正在使用reglarexpression属性修饰我的viewmodel的字符串属性,并使用unobtrusive将其渲染为javascript,因此必须使用javascript进行验证。我在最初的帖子中没有提到这个
答案 0 :(得分:3)
您可以使用:
^[\x00-\x7F]+?@(?!.*?\.\.)(?=[\x01-\x7F]+$)[^@]+$
答案 1 :(得分:3)
你可以使用这个正则表达式
^[\x00-\x7F-[@]]*?@(?!.*?\.\.)[\x00-\x7F-[@]]+$
或者,如果您想在@
之前匹配至少1个字符:
^[\x00-\x7F]+@(?!.*?\.\.)[\x00-\x7F-[@]]+$
请注意[\x00-\x7F]
还包含@
符号。在C#regex中,我们可以使用字符类中的-[@]
从范围中减去此值。
你不需要锚,因为你在RegularExpressionAttribute
中使用它,我相信。
以下是demo on regexstorm.net,删除第二个@
,您将获得匹配。