qaz*_*y23 7 javascript regex replace
例如,我有一串文字
[text1] [text2] [text3]
Run Code Online (Sandbox Code Playgroud)
我想将"["字符替换为"$ {"和"]"字符替换为"}",但仅在这种情况下,当"["后跟"]"时.
例如
[text1] [[text2] [text3]
Run Code Online (Sandbox Code Playgroud)
应该导致
${text1} [${text2} ${text3}
Run Code Online (Sandbox Code Playgroud)
如何在Javascript中使用正则表达式实现这一目标?
我写了这样的东西
someString = someString.replace(/\[/g, "${");
someString = someString.replace(/]/g, "}");
Run Code Online (Sandbox Code Playgroud)
但它不适用于我的问题,它只是取代了每个支架.
Wik*_*żew 11
你可以用
var s = "[text1] [[text2] [text3]";
console.log(s.replace(/\[([^\][]+)]/g, "$${$1}"));Run Code Online (Sandbox Code Playgroud)
细节
\[- 一个[炭([^\][]+)- 组1:与除了和之外的任何1+ chrs匹配的否定字符类(注意在JS正则表达式中的字符类内部,char必须始终被转义,即使它被放置在否定的类开头)[]]]- ]char(在字符类之外,]不是特殊的,不必转义).在替换模式中,$$代表文字$字符,{添加{字符,$1插入组1值,然后}添加a.