提交 Web 表单后,正则表达式将应用于服务器端的用户输入(通过 PHP)。我希望在客户端实时运行相同的正则表达式,以向用户展示真正的输入是什么。这与 Stack Overflow 上的提问页面上的预览部分几乎相同,只是后端使用 PHP 而不是 .NET。

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

有帮助吗?

解决方案

呵呵,不久前有人问过这个问题,杰夫指出:
http://www.regular-expressions.info/refflavors.html.

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

其他提示

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

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

http://www.regular-expressions.info/php.html

http://www.regular-expressions.info/javascript.html

Javascript 实现可能是更基本的,所以如果您想要一种最低公分母方法,那么就瞄准这种方法。

我发现正则表达式的不同实现通常在它们所支持的内容方面存在细微的差异。如果您想完全确保前端和后端的结果相同,最节省的选择是对 PHP 后端进行 Ajax 调用,并使用相同的 PHP 代码片段进行正则表达式计算。

@LKM AJAX 是这里明显的赢家。这也将使您能够遵循 干燥 原则。为什么你想用 Javascript 编写解析代码 PHP?

JavaScript 的 regex 和 PHP 的 preg_match 都是基于 Perl 的,因此不应该有任何移植问题。但请注意,Javascript 仅支持 Perl 支持的修饰符的子集。

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

至于送货方式,我建议您使用 JSON, ,迄今为止最精简的数据交换格式(AFAIK),可通过 eval() 直接转换为 JavaScript 对象。让那个坏男孩经历一次 阿贾克斯 会议,您应该可以出发了。

我希望这有帮助 :)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top