javascript - 从 Javascript 到 PHP 的正则表达式

标签 javascript php regex

我想知道是否有一个工具可以将 JavaScript Regex 转换为 PHP。

我在 JAvascript 中得到了以下正则表达式

 var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

还有

 pwbx2.match(/.[^!,+,§,\),\(,=,\-,\.,:,,,\w]/)

现在我不想匹配给定的值来在服务器端检查这个正则表达式。我该怎么做?

干杯

斯文

最佳答案

你需要知道 .[^!,+,§,\),\(,=,\-,\.,:,,,\w] 是一个怪物。正常的正则表达式,这将是:

.[^-.,:+=!§()\w]

[括号]表示字符类。它们的意思是“匹配此类中的一个字符”,或者,当第一个字符为 ^ 时“匹配一个不属于此类的字符”。因此,永远不需要在字符类中重复某个字符。这个有十一个逗号!

您的测试可以用这种紧凑的方式表达:

$theregex = '~.[^-.,:+=!§()\w]~';
echo (preg_match($theregex, $yourstring)) ? "**It Matches!**" : "Nah... No match." ;

但这可能不会按照您想要的方式工作

原始的正则表达式引出了一个问题:当他们写这个的时候他们在想什么?显然,写这篇文章的人都是正则表达式文盲(我并不是故意居高临下……这只是事实。)因此,他们在写这篇文章时很可能有完全不同的想法。如果是这种情况,那么无论你翻译得多么好都没有关系:它不会完成其预期的工作。

如果您知道正则表达式应该做什么,请告诉我们,我们将帮助您修复它。

关于javascript - 从 Javascript 到 PHP 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24466627/

相关文章:

regex - 用grep检测俄语字符

带小数的 JavaScript 正则表达式自动逗号

javascript - 如何使正则表达式不区分大小写?

javascript - 如何在 JavaScript 中将普通日期转换为 JSON 日期?

javascript - 使用 JS 从列表中获取选定的项目

javascript - 如何通过将另一个对象的值作为键来创建新对象?

php邮件函数

php - PHP 中检查 in_array 的替代方案

javascript - asp net 中的确认是或否消息

php - 如何使用动态 OR 条件进行 PDO 查询