【问题标题】:Replace string that starts with specific character and ends with specific character in regular expression替换正则表达式中以特定字符开头并以特定字符结尾的字符串
【发布时间】:2017-11-07 22:44:35
【问题描述】:

我想替换以特定字符开头并以特定字符结尾的字符串部分。在下面,我演示了测试用例。

var reg = /pattern/gi;

var str = "asdfkadsf[xxxxx]bb";

var test = str.replace(reg,"") == "asdfkadsfbb"

console.log(test);

【问题讨论】:

  • 在您的示例中,您想替换括号之间的所有内容吗?
  • 您是否打算将 [xxxxx] 替换为 b 或者这是一个错字,结果应该是 asdfkadsfbb
  • @AdamPlocher 是的,但也包括括号。
  • @jerry 我现在删除了 b 字符。
  • +1 用于提供测试用例代码。

标签: javascript regex


【解决方案1】:

此模式适用于替换括号之间的任何内容(包括括号):

var reg = /(\[.*?\])/gi;

var str = "asdfkadsf[xxxxx]bb";

var test = str.replace(reg,"") == "asdfkadsfbb"

【讨论】:

  • 不区分大小写在这种情况下并没有真正提供任何用处。赞成,不管不必要的i
  • @JeffShaver 谢谢,你说得对。我只是拿了他的代码并对其进行了修改,甚至没有真正注意这一点。
  • () 是不必要的,/\[[^\]]*\]/g 会更有效。
【解决方案2】:

根据您的示例,这是可行的:

/\[.*]/gi

【讨论】:

  • 这看起来最干净。但我认为您在第二个括号之前缺少反斜杠。 /\[.*\]/gi
猜你喜欢
  • 1970-01-01
  • 2017-09-17
  • 2023-01-02
  • 2019-08-26
  • 2013-10-27
  • 1970-01-01
  • 1970-01-01
  • 2019-08-14
  • 1970-01-01
相关资源
最近更新 更多