试图在正则表达式中使用新行字符会导致;新行“;在我的javascript代码中
我将在这里包括一些图片来阐明我的观点 所以我要做的是去掉一个数组中单词的所有标点符号。但它似乎不起作用,最大的问题是我的试图在正则表达式中使用新行字符会导致;新行“;在我的javascript代码中,javascript,regex,Javascript,Regex,我将在这里包括一些图片来阐明我的观点 所以我要做的是去掉一个数组中单词的所有标点符号。但它似乎不起作用,最大的问题是我的\n和\r正在充当新行 图像: 所以我的正则表达式代码 正在变成这样 当我在浏览器中运行它时。然后我得到错误消息:uncaughtsyntaxerror:Invalid正则表达式:missing/ 缺少/有意义,因为正则表达式的其余部分现在在下面两行 使用RegExr表明它应该可以工作 我相信这是非常简单的,但我就是看不出我的错误! 如果有人能解释一下我的错误,我会很感激
\n
和\r
正在充当新行
图像:所以我的正则表达式代码 正在变成这样 当我在浏览器中运行它时。然后我得到错误消息:
uncaughtsyntaxerror:Invalid正则表达式:missing/
缺少/有意义,因为正则表达式的其余部分现在在下面两行
使用RegExr表明它应该可以工作
我相信这是非常简单的,但我就是看不出我的错误!
如果有人能解释一下我的错误,我会很感激的,因为我的表情很糟糕!我在这里读到的其他类似问题指出了缺少括号、缺少转义字符等
我甚至试着逃离我逃脱的角色!例如,\\n
和\\r
,但这只是在新行上留下了两个额外的斜杠
如果有帮助的话:这个JavaScript代码是从PHP中回显出来的,但是如果我去掉\n
和\r
,它就会工作,所以这不应该是PHP的问题
希望这是足够的信息,如果有什么我可以补充澄清请评论 您遇到的问题是
\n
和\r
是转义序列,字面上被解释为换行符和回车符。它们破坏了JS代码(在本例中是文本正则表达式表示法)
为了避免数据损坏,当您将正则表达式模式从一个系统发送到另一个系统时,最好依赖字符的十六进制表示
使用\u000A
(或\x0A
)作为换行符,使用\u000D
(\x0D
)作为回车符
还有一句话:在表达式中,有一个unscaped
-
创建了一个范围。我想这是故意的,但仍然是一个值得报道的细节,-\/
将匹配,
,-
,
,和/
为什么不使用\u000A
和\u000D
(\x0A
/\x0D
)?试试看,哇。。。这很有效。。。有没有关于我的方式出了什么问题的信息?这不应该是我的方式吗?我让图像出现在问题中。还有一点需要注意:表达式中不需要转义^
、*
和
,因为它们在字符类中使用(并且^
不是其中的第一个符号)。请检查我的答案,并决定哪些内容必须匹配和相应地编辑。“这不应该是PHP的问题”-但我非常确定它是。这不是一个JS或regex问题,因为它看起来像是单个\和n字符没有被发送到浏览器:PHP将它们视为一个换行符,并重复这一点。在PHP中必须有某种方法来逃避\,以便它确实会发送一个\后跟一个n到浏览器,但我不是PHP的人,所以我不知道。(如果是Java或C#我可以帮忙…)非常感谢!使用十六进制代码完美地工作,我会认为它是一个教训,以供将来参考!(也感谢你编辑我的问题,使图片工作)同样,无关的(我会删除这个评论一旦回答),但你如何修复我的文章中的图像?我错过了什么?