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

时间:2008-08-27 13:36:51

标签: php javascript regex

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

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

5 个答案:

答案 0 :(得分:10)

不久之前,赫赫有点问过,杰夫指出: http://www.regular-expressions.info/refflavors.html

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

答案 1 :(得分:3)

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

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

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

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

@LKM AJAX在这里是明显的赢家。这也可以让您遵循DRY原则。为什么要在Javascript PHP中编写解析代码?

答案 4 :(得分:0)

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

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

至于传递方法,我建议你使用JSON,这是迄今为止最薄的数据交换格式(AFAIK),可以通过eval()直接翻译成JavaScript对象。只要把那个坏孩子放到AJAX会话中就可以了。你应该准备好了。

我希望这会有所帮助:)