javascript - 尝试在正则表达式中使用换行符导致我的 javascript 代码出现 "new line"

标签 javascript regex

我将在此处附上一些图片来阐明我的观点。

所以我想做的是去掉数组中单词的所有标点符号。但它似乎不起作用,最大的问题是我的 \n\r 正在充当换行符。

图片:
所以我的正则表达式代码

enter image description here

变成这个

enter image description here

当我在浏览器中运行它时。然后我收到错误消息:Uncaught SyntaxError: Invalid regular expression: missing/

缺少/是有道理的,因为正则表达式的其余部分现在在下面两行!

使用 RegExr 表明它应该可以工作

enter image description here

我确信它非常简单,但我似乎无法发现我的错误! 如果有人可以解释我的方法的错误,我将不胜感激,因为我对 RegExpressions 很糟糕!我在这里读到的其他类似问题指出缺少括号、缺少转义字符等。

我什至尝试过转义我的转义 Angular 色! IE。 \\n\\r,但这只是在新行中留下了两个额外的斜线。

以防万一:这段 JavaScript 代码是从 PHP 中回显出来的,但是如果我取出 \n\r 它就可以工作,所以它不应该是 PHP 问题。

希望这是足够的信息,如果还有其他我可以添加以澄清的内容,请发表评论!

最佳答案

您遇到的问题是 \n\r 是转义序列,按字面解释为换行符和回车符。他们破坏了 JS 代码(在这种情况下,文字正则表达式表示法)。

为避免数据损坏,当您将正则表达式模式从一个系统发送到另一个系统时,您最好依赖字符的十六进制表示。

使用\u000A(或\x0A)进行换行,使用\u000D(\x0D)用于回车。

还有一点要注意:在表达式中,有一个未转义的 - 创建了一个范围。我想这是故意的,但仍然是一个值得报告的细节。 ,-\/ 将匹配 ,, -, ./

关于javascript - 尝试在正则表达式中使用换行符导致我的 javascript 代码出现 "new line",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35248150/

相关文章:

javascript - Canvas 多人游戏,我不能按超过 4 个按钮

regex - 在egrep中匹配As后跟相同数量的B

javascript - 在 AngularJS 中 Controller 和服务之间传递变量的混淆

javascript - 使用 DynamoDB 扫描重复项目

javascript - 在 jQuery 中使用 AJAX 以表格格式自动完成显示来自 JSON 的两列

javascript - 如何使 Javascript 正则表达式仅在两个字符彼此相邻时匹配?

c# - C++ std::regex 错误地验证整数

c# - 使用 C# 或 Jquery 将多个 <br> 替换为单个 <br>

python - 使用多个分隔符在 python 中拆分字符串的最佳方法 - 同时保留分隔符

javascript - 如何使此 slider 在单击下一个和上一个时显示 2 个引号