【问题标题】:Escape "+" in JavaScript Regular Expression [closed]在 JavaScript 正则表达式中转义“+”[关闭]
【发布时间】:2015-05-19 18:15:24
【问题描述】:

这是我要执行的代码

input.replace(/^.+?(?=\+)/, ''), "i")

我有 \+ 的 escape plus 但我收到错误

Uncaught SyntaxError: Invalid regular expression: /+/: Nothing to repeat

请告诉我如何在上述正则表达式中转义+

【问题讨论】:

  • 你确定那是你真正的正则表达式吗? regex101 seems to think it's fine.
  • 我不是 javascript 方面的专家,但我认为您需要根据 w3schools.com/jsref/jsref_replace.asp 将您的正则表达式放在引号中
  • 那不可能是真正的代码,你的圆括号没有意义。 (一旦修复,代码就不会抛出任何错误。)
  • @soong /.../ 是内联正则表达式的语法。
  • 你确定是这个问题吗?上面的部分行——部分是因为末尾有一个额外的, "i")——一旦移除额外的部分就可以了。您能否包含产生错误的实际、完整的代码?

标签: javascript regex


【解决方案1】:

您需要将 i 修饰符放在正则表达式的末尾 - 而不是作为单独的参数。例如:

input.replace(/^.+?(?=\+)/i, '');

正如@LorenzMeyer 指出的那样,您实际上并不需要 i 修饰符,因为根据您的正则表达式,大小写无关紧要。也许您需要全局替换?在这种情况下,您的替换将如下所示:

input.replace(/^.+?(?=\+)/g, '');

【讨论】:

  • i 不是必需的。我在这里看不到任何区分大小写的内容。
  • @LorenzMeyer 这是真的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-18
  • 1970-01-01
  • 1970-01-01
  • 2017-09-10
  • 2010-10-27
相关资源
最近更新 更多