我有一个像这样的字符串,
(1 AND 2 ) OR (2 AND 3)
我需要用数字+特殊字符(如1@,2@
)替换该字符串中的所有数字,结果应该是这样的,
(1@ AND 2@ ) OR (2@ AND 3@),
所以我尝试了以下方法,
var d = "(1 AND 2 ) OR (2 AND 3)"
console.log(d.replace(/[0-9]/g, "@"))
但它只会产生类似的结果,
(@ AND @ ) OR (@ AND @)
我的预期输出是,
(1@ AND 2@ ) OR (2@ AND 3@)
最佳答案
尝试在输出中包含 $&
的匹配:
const str = '(1 AND 2 ) OR (2 AND 3)'
console.log(str.replace(/\d/g, '$&@'));
您还可以使用(新的)lookbehind,这样边界匹配,但不匹配数字本身:
const str = '(1 AND 2 ) OR (2 AND 3)'
console.log(str.replace(/(?<=\d)/g, '@'));
关于javascript - 如何用数字加特殊字符替换字符串中的所有数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51277407/