Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使JavaScript正则表达式等效于PHP正则表达式_Php_Javascript_Regex - Fatal编程技术网

使JavaScript正则表达式等效于PHP正则表达式

使JavaScript正则表达式等效于PHP正则表达式,php,javascript,regex,Php,Javascript,Regex,提交web表单后,服务器端的用户输入将应用正则表达式(通过PHP)。我希望在客户端实时运行相同的正则表达式,向用户显示实际输入。这与关于堆栈溢出的提问页面上的预览部分基本相同,只是在后端使用PHP而不是.NET 为了使我的PHP和JavaScript正则表达式的行为完全相同,我需要记住什么?呵呵,刚才有人问我这个问题,杰夫指出: 对各种工具和语言的正则表达式功能进行了比较。我发现,正则表达式的不同实现通常在其支持的内容上存在细微差异。如果您想完全确保前端和后端的结果相同,最安全的选择是对PHP

提交web表单后,服务器端的用户输入将应用正则表达式(通过PHP)。我希望在客户端实时运行相同的正则表达式,向用户显示实际输入。这与关于堆栈溢出的提问页面上的预览部分基本相同,只是在后端使用PHP而不是.NET


为了使我的PHP和JavaScript正则表达式的行为完全相同,我需要记住什么?

呵呵,刚才有人问我这个问题,杰夫指出:


对各种工具和语言的正则表达式功能进行了比较。

我发现,正则表达式的不同实现通常在其支持的内容上存在细微差异。如果您想完全确保前端和后端的结果相同,最安全的选择是对PHP后端进行Ajax调用,并对两个正则表达式求值使用相同的PHP代码。

如果正则表达式很简单,那么应该没有问题,因为正则表达式的基础在大多数实现中都很常见

关于细节,最好研究两种实现:


Javascripts实现可能是最基本的,因此,如果您选择的是最小公分母的方法,那么就瞄准这个方法。

@LKM AJAX显然是这里的赢家。这也将允许您遵循该原则。为什么要用JavascriptPHP编写解析代码?

Javascript的正则表达式和PHP的preg_匹配都基于Perl,因此不应该存在任何移植问题。但是请注意,Javascript只支持Perl支持的修饰符子集

有关比较两者的更多信息:

至于交付方法,我建议您使用最瘦的数据交换格式(AFAIK),并且可以通过eval()直接转换为JavaScript对象。只要给那个坏孩子开个会,你就可以走了


我希望这有帮助:)

为什么要写两次?因为它会为用户运行得更快,占用更少的带宽。你不能信任客户端,但如果你不想,你也不想进行HTTP请求,所以最好的方法是同时解析客户端和服务器中的代码(服务器解析只是因为你不信任客户端!)。