10

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

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

4

5 回答 5

12

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

比较了跨工具和语言的正则表达式功能。

于 2008-08-27T13:39:38.987 回答
3

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

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

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

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

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

于 2008-08-27T13:41:47.577 回答
1

我发现正则表达式的不同实现通常在它们支持的内容上存在细微差别。如果您想完全确定前端和后端的结果相同,最省钱的选择是对 PHP 后端进行 Ajax 调用,并为两个正则表达式评估使用相同的 PHP 代码。

于 2008-08-27T13:41:08.840 回答
1

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

于 2008-08-27T14:57:47.517 回答
0

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

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

至于交付方式,我建议您使用JSON,这是迄今为止最精简的数据交换格式 (AFAIK),并且可以通过 eval() 直接转换为 JavaScript 对象。只要让那个坏男孩通过AJAX会话,你就应该准备好了。

我希望这有帮助 :)

于 2008-08-27T15:54:43.717 回答