使JavaScript正则表达式等效于PHP正则表达式
提交web表单后,服务器端的用户输入将应用正则表达式(通过PHP)。我希望在客户端实时运行相同的正则表达式,向用户显示实际输入。这与关于堆栈溢出的提问页面上的预览部分基本相同,只是在后端使用PHP而不是.NET使JavaScript正则表达式等效于PHP正则表达式,php,javascript,regex,Php,Javascript,Regex,提交web表单后,服务器端的用户输入将应用正则表达式(通过PHP)。我希望在客户端实时运行相同的正则表达式,向用户显示实际输入。这与关于堆栈溢出的提问页面上的预览部分基本相同,只是在后端使用PHP而不是.NET 为了使我的PHP和JavaScript正则表达式的行为完全相同,我需要记住什么?呵呵,刚才有人问我这个问题,杰夫指出: 对各种工具和语言的正则表达式功能进行了比较。我发现,正则表达式的不同实现通常在其支持的内容上存在细微差异。如果您想完全确保前端和后端的结果相同,最安全的选择是对PHP
为了使我的PHP和JavaScript正则表达式的行为完全相同,我需要记住什么?呵呵,刚才有人问我这个问题,杰夫指出:
对各种工具和语言的正则表达式功能进行了比较。我发现,正则表达式的不同实现通常在其支持的内容上存在细微差异。如果您想完全确保前端和后端的结果相同,最安全的选择是对PHP后端进行Ajax调用,并对两个正则表达式求值使用相同的PHP代码。如果正则表达式很简单,那么应该没有问题,因为正则表达式的基础在大多数实现中都很常见 关于细节,最好研究两种实现:
Javascripts实现可能是最基本的,因此,如果您选择的是最小公分母的方法,那么就瞄准这个方法。@LKM AJAX显然是这里的赢家。这也将允许您遵循该原则。为什么要用Javascript和PHP编写解析代码?Javascript的正则表达式和PHP的preg_匹配都基于Perl,因此不应该存在任何移植问题。但是请注意,Javascript只支持Perl支持的修饰符子集 有关比较两者的更多信息:
我希望这有帮助:)为什么要写两次?因为它会为用户运行得更快,占用更少的带宽。你不能信任客户端,但如果你不想,你也不想进行HTTP请求,所以最好的方法是同时解析客户端和服务器中的代码(服务器解析只是因为你不信任客户端!)。