将JavaScript正则表达式与PHP正则表达式等效

10
在我的Web表单提交后,将会通过PHP在服务器端对用户输入进行正则表达式处理。我想要在客户端实时运行相同的正则表达式,以向用户展示实际的输入内容。这基本上与Stack Overflow上的“预览”部分相同,只不过后端使用的是PHP而不是.NET。
为了使我的PHP和JavaScript正则表达式完全相同,需要注意什么?
5个回答

12

3

1
我发现正则表达式的不同实现通常在它们支持的内容上有微妙的差异。如果你想要完全确保前端和后端的结果相同,最安全的选择是向你的PHP后端发起一个Ajax调用,并且在两个正则表达式评估中都使用相同的PHP代码。

1

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


5
为什么要写两遍?因为这样可以让用户更快地运行并且占用更少的带宽。 - TRiG
3
不能信任客户端,但如果不想发出HTTP请求,也不想这样做,那么最好的方法是解析客户端和服务器上的代码(服务器解析仅因为不信任客户端而进行!)。 - Adirael

0

JavaScript的正则表达式和PHP的preg_match都是基于Perl的,因此不应该有任何移植问题。但请注意,JavaScript仅支持Perl支持的子集。

有关比较这两个的更多信息:

至于交付方式,我建议您使用JSON,这是迄今为止最轻巧的数据交换格式(据我所知),并且可以通过eval()直接转换为JavaScript对象。只需将该文件通过AJAX会话传递,您就可以开始了。

希望这可以帮助您 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接