从PHP到Java的正则表达式转换问题

时间:2018-11-12 00:06:38

标签: javascript regex

基本上,我不了解如何构建正则表达式,目前 PHP正则表达式为

/^[\w\s'-\/\.\,\(\)\\\]{0,100}$/

但是现在我想将此正则表达式转换为与Javascript兼容的正则表达式。

如何使上述正则表达式在Javascript中兼容?

2 个答案:

答案 0 :(得分:1)

您的正则表达式中有太多转义字符,否则,它应该可以工作。

因此,尽管这是一个奇怪的正则表达式,总是可以匹配零到100个字符,但这是一个应该起作用的修改版本:

/^[\w\s'-\/\.,\(\)\\]{0,100}$/

答案 1 :(得分:1)

反斜杠字符用于转义元字符。在集合中(在方括号之间),您不需要转义大多数元字符。

这也可以做到:

^[\w\s'-/.,()\\]{0,100}$

在PHP中,您可以使用三个或四个反斜杠转义一个反斜杠:

\\\-转义反斜杠(PHP)

\\\\-还转义了反斜杠(PHP)

但是请不要混搭,因为它容易造成混乱和混乱。

使用JavaScript,您必须用一个正好两个反斜杠表示一个文字反斜杠。

\\-转义一个反斜杠(JS)

这是进一步的资源:https://javascript.info/regexp-character-sets-and-ranges#no-escaping-in-

如果您有几个小时要花,我会通过Sam的Teach Yourself了解有关正则表达式的大部分知识。该材料侧重于PCRE,但对于JS也有98%的有用性。您会更快乐;正则表达式很难。