我正在查看jquery.validate plugin source code,检查哪些表达式用于检查字段的有效性,因此我可以在服务器端实现相同的功能 . 我进入正则表达式的电子邮件,例如:
return this.optional(element)||
/ ^((([az] | \ d | [!#\ $%&'* - / = \?\ ^ _ {\ |}〜] | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])(\ . ([az] | \ d | [!#\ $%&'\ * \ \ - \ / = \?\ ^ _ {\ |}〜] | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])))|((\ x22)((((\ x20 | \ x09)(\ x0d \ x0a))?(\ x20 | \ x09))?(([\ x01- \ X08 \ X0B \ X0C \ x0e- \ X1F \ 0x7F部分] | \ X21 | [\ x23- \ x5b] | [\ x5d- \ x7e] | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])|(\([\ x01- \ X09 \ X0B \ X0C \ x0d- \ 0x7F部分] | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF]))))(((\ x20 | \ x09)(\ x0d \ x0a))?(\ x20 | \ x09))?(\ x22)))@((([az] | \ d | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])|(([AZ] | \ d | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])([AZ] | \ d | - | | _ |〜 | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])([AZ] | \ d | . [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])))) (([AZ] | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])|(([AZ] | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])( [AZ] | \ d | - | | _ |〜| [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])([AZ] | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])))$ / i.test(值) . ?;
我想,粗体部分是表达式,但它在.NET中不起作用(它说电子邮件一直都是错误的)我想这是因为javascript编码的字符 . 有没有一种简单的方法可以用来翻译表达式?
谢谢 .
2 回答
虽然它是商业的(即非免费,但便宜),但我不能足够推荐"RegexBuddy" http://www.regexbuddy.com/ .
使用标准的“标准”RegEx语法(您可以交互式构建和测试),然后它将以正确的语法生成源代码,以便在多种环境和许多“场景”中使用,包括.net,javascript,Perl,PHP,Python等 .
凭借我对Regex的低迷知识,这个程序是一个救星 .
*免责声明:没有任何隶属关系 - 只是一个非常快乐的多年客户
**额外注意 - 我只是注意到Jeff Attwood在他们的主页上有一个推荐!
JavaScript的:
.net C#
我不知道它是否只是一个你感兴趣的电子邮件验证,或者它是否是任意模式,但根据我在该示例片段和大多数其他JS正则表达式中可以看到的内容,它们与正则表达式规范的差别可能不大 . .NET,意味着可能由于某些其他语法差异/错误而出现错误 .
JavaScript的正则表达式风格是该语言的ECMA-262标准(see)的一部分,尽管两者(Javascript和.NET正则表达式)都源自Perl的正则表达式规范(see) . 因此,这可能会为您提供两者相似之处和不同之处的线索 .
但就像我说的,如果它只是你感兴趣的电子邮件模式,试试这个: