【问题标题】:Javascript replace opening and closing bracketsJavascript替换左括号和右括号
【发布时间】:2019-02-03 08:20:31
【问题描述】:

我有一串文字,例如

[text1] [text2] [text3]

我想用“${”替换“[”字符,用“}”替换“]”字符,但只有在这种情况下,当“[”后面跟着“]”时。

例如

[text1] [[text2] [text3]

应该会导致

${text1} [${text2} ${text3}

如何使用 Javascript 中的正则表达式来实现这一点?

我写了这样的东西

someString = someString.replace(/\[/g, "${");
someString = someString.replace(/]/g, "}");

但这对我的问题不起作用,它只是替换了每个括号。

【问题讨论】:

    标签: javascript regex replace


    【解决方案1】:

    你可以使用

    var s = "[text1] [[text2] [text3]";
    console.log(s.replace(/\[([^\][]+)]/g, "$${$1}"));

    详情

    • \[ - 一个 [ 字符
    • ([^\][]+) - 第 1 组:a negated character class 匹配除 [] 之外的任何 1+ 个字符(请注意,在 JS 正则表达式的字符类中,] 字符必须始终被转义,即使它被放置在否定的类开始处)
    • ] - 一个 ] 字符(在字符类之外,] 并不特殊,不必转义)。

    在替换模式中,$$ 代表文字 $ 字符,{ 添加 { 字符,$1 插入 Group 1 值,然后添加 }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多