javascript - 如何用数字加特殊字符替换字符串中的所有数字?

标签 javascript regex

我有一个像这样的字符串,

(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/

相关文章:

javascript - 如果字符存在于定界符的任一侧,则按定界符拆分字符串

javascript - 为什么这个数组中的值(显然)立即改变

Javascript 无法在 PHP 页面中工作包括

java - 匹配 HTML 中的 img src 名称

regex - Perl 中的 qr/和 m/有什么区别?

javascript - IONIC 2 : How to upload a . docx,远程服务器上的图像文件以及文件到 mysql 数据库的链接

javascript - 运行构建时 react 路由器动态 url 不起作用

javascript - 更改 javascript 正则表达式分隔符

regex - 匹配在字符串中重复两次的任意序列

MySQL 按 REGEXP 分组