用于客户端和服务器端验证的相同正则表达式

时间:2014-05-14 16:31:53

标签: javascript php regex email pcre

我试图找出我的客户端Javascript正则表达式

/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/

用于电子邮件验证(我使用它只是为了确保电子邮件格式正确,而不是作为主要验证方法)将在服务器端使用PHP工作。

即使两种语言都使用基于Perl的正则表达式语法,我也不确定是否可以使用相同的语法。谢谢你的帮助。

2 个答案:

答案 0 :(得分:3)

您应该能够使用相同的语法。 你应该用 preg_match(String $pattern, String $email[, array $matches]) 用你的模式。如果给出,它会将所有出现的内容放入数组$ matches中。 如果找到匹配,则返回true。特别是对于电子邮件,它始终是一个 更好的想法使用他人的功能,因为例如“$ @ us”是有效的 电子邮件地址

答案 1 :(得分:1)

这个正则表达式在JavaScript和PHP中几乎完全相同。有一些微小的差异,例如\s匹配PHP中的“下一行”控制字符U+0085,但不匹配JavaScript,但它们在这种情况下不太可能重要(无论如何允许新行都不常见和电子邮件地址中的标签 - 为什么不使用简单的空格而不是通用的空白速记\s)。

如果您必须定期进行这些比较/转换,我衷心建议您查看RegexBuddy,只需点击一下即可转换各种口味之间的正则表达式。