使JavaScript正则表达式等效于PHP正则表达式
提交我的Web表单后,正则表达式将应用于服务器端的用户输入(通过PHP)。我想让相同的正则表达式在客户端实时运行,以向用户显示真正的输入。这与Stack Overflow的"询问"页面上的"预览"部分几乎相同,不同之处在于后端使用PHP而不是.NET。
为了使我的PHP和JavaScript正则表达式彼此完全相同,我需要记住什么?
解决方案
回答
呵呵,这是刚才问过的,杰夫指出:
http://www.regular-expressions.info/refflavors.html。
对各种工具和语言的正则表达式功能进行了比较。
回答
我发现正则表达式的不同实现通常在它们所支持的内容方面存在细微的差异。如果要完全确保前端和后端的结果相同,最节省的选择是对PHP后端进行Ajax调用,并对两个regex评估使用相同的PHP代码。
回答
如果正则表达式很简单,那么就不会有问题,因为正则表达式的基础知识在大多数实现中都是通用的。
对于细节,那么最好研究两个实现:
http://www.regular-expressions.info/php.html
http://www.regular-expressions.info/javascript.html
Javascript的实现可能是更基本的,因此,如果我们要使用最低的公分母方法,请针对该方法。
回答
@LKM AJAX在这里显然是赢家。这也将使我们遵循DRY原则。我们为什么要用Javascript和PHP编写解析代码?
回答
JavaScript的正则表达式和PHP的preg_match均基于Perl,因此不应该存在任何移植问题。但是请注意,Javascript仅支持Perl支持的修饰符的子集。
有关比较两者的更多信息:
- Javascript正则表达式
- PHP正则表达式
至于传递方法,我建议我们使用JSON,这是迄今为止最薄的数据交换格式(AFAIK),可以通过eval()直接转换为JavaScript对象。只需让那个坏男孩参加AJAX会话,就可以开始了。
我希望这有帮助 :)