我会在这里添加一些图片来表达我的观点。
所以我要做的就是从数组中输出一个单词的所有标点符号。但它似乎没有起作用,最大的问题是我的\n
和\r
充当新行。
图片:
所以我的正则表达式代码
正在成为这个
当我在浏览器中运行它时。然后我收到错误消息:Uncaught SyntaxError: Invalid regular expression: missing /
缺失/有意义,因为正则表达式的其余部分现在是下面的两行!
使用RegExr表明它应该正常工作
我确定它非常简单,但我似乎无法发现我的错误! 如果有人可以解释我的方式的错误,我会很感激,因为我对RegExpressions很糟糕!我在这里读到的其他类似问题指出了缺少括号,缺少转义字符等。
我甚至试图逃脱逃脱的角色!即。 \\n
和\\r
,但只是在新行上留下了两个额外的斜杠。
如果它有帮助:这个JavaScript代码正在从PHP中回显,但是如果我取出\n
和\r
它就可以了,所以它不应该是PHP问题。
希望这是足够的信息,如果有其他我可以添加澄清请注释!
答案 0 :(得分:1)
您遇到的问题是\n
和\r
是转义序列,并按字面解释为换行符和回车符号。它们破坏了JS代码(在本例中,是文字正则表达式)。
为了避免数据损坏,当您将正则表达式模式从一个系统发送到另一个系统时,您最好依赖于字符的十六进制表示。
使用\u000A
(或\x0A
)换行,\u000D
(\x0D
)回车。
还有一句话:在表达式中,有一个未转义的-
可以创建一个范围。我想这是故意的,但仍然是一个值得报道的细节。 ,-\/
将与,
,-
,.
和/
匹配。