我有一个弦
{'lalala'} text before \{'lalala'\} {'lalala'} text after
我想获得方括号
{
,但前提是之前没有转义字符\
。/(?:[^\\])\{/
的种类,但在第一条语句中不起作用。 最佳答案
典型的方法是匹配非\
前面的字符(或字符串的开头),然后将其放回替换逻辑中。
const input = String.raw`{'lalala'} text before \{'lalala'\} {'lalala'} text after`;
function replace(str) {
return input.replace(/(^|[^\\])\{'(\w+)'\}/g,
(_, chr, word) => chr + word.toUpperCase());
}
console.log(replace(input));