【问题标题】:Javascript regex that escapes \ sign [duplicate]转义\符号的Javascript正则表达式[重复]
【发布时间】:2019-01-31 00:27:22
【问题描述】:

我正在尝试转换具有以下值的字符串

"A\"s\"sets"

我的目标是从字符串中删除 \ 值,无论它们中有多少出现在字符串中。

 "A"s"sets"

我尝试使用新的 RegExp,但我无法执行该操作。 我什至设法创建了正则表达式,它将获取除 \ 符号之外的所有内容

[a-zA-Z0-9'"*]

我也试过打电话

regex.exec(string)

但我得到一个数组而不是清除字符串。 任何人都知道如何做到这一点? 谢谢

【问题讨论】:

  • 你看到的那些斜线 \ 实际上并不是斜线,它们转义了特殊含义的字符,例如 " 需要在字符串中转义。
  • 它不会提供正确的结果,除非您的字符串有一个相邻的 \,这是一个示例,其中随机输入 \ 在字符串 jsfiddle.net/hwe869ro

标签: javascript regex


【解决方案1】:

你可以使用替换。

let str = `"A\"s\\"sets"`

let op = str.replace(/\\+/g, '')

console.log(op)

【讨论】:

  • 那行不通。它似乎只起作用,因为您错误地构造了 str 的值,因此斜杠被视为转义序列而不是数据的一部分。您的正则表达式删除了+ 字符!由于没有,op === str
  • @Quentin 现在会更新
  • @CodeManiac:如果你真的想在你的字符串中有斜线,你需要将它转义并在字符串中写入双斜线。尝试运行这个console.log(str) 你会看到字符串中没有打印斜线。
  • @PushpeshKumarRajwanshi 我想你没有注意到更新的?是吗?
  • 即使我得到了像 "A\"s\"\"\"\"\"s\"e\"ts" 这样转义了 10 个双引号的错位字符串,它也能很好地工作所有的斜线,非常感谢CM!问题是我从速度中获取字符串,这就是我得到的以及我需要拦截的内容,以避免在它到达 JS 时出现任何价值问题,否则这不会是问题。再次感谢CM!
猜你喜欢
  • 1970-01-01
  • 2015-07-26
  • 1970-01-01
  • 2011-03-27
  • 1970-01-01
  • 1970-01-01
  • 2020-04-11
  • 2015-10-25
  • 2010-10-27
相关资源
最近更新 更多