Mar*_*ary 3 javascript regex node.js
我目前有以下代码:
const pattern = "quick";
const re = new RegExp(pattern, "gi");
const string = "The quick brown fox jumped over the lazy QUICK dog";
const replaced = string.replace(pattern, "<b>" + pattern + "</b>");
console.log(replaced);Run Code Online (Sandbox Code Playgroud)
它产生以下内容:
The <b>quick</b> brown fox jumped over the lazy QUICK dog
Run Code Online (Sandbox Code Playgroud)
我想要的是:
The <b>quick</b> brown fox jumped over the lazy <b>QUICK</b> dog
Run Code Online (Sandbox Code Playgroud)
我有两个问题。
首先,为什么QUICK我不区分大小写的正则表达式不被替换?
其次,我如何确保QUICK用<b>QUICK</b>和代替<b>quick</b>?
您需要传递<b>$&</b>第二个参数.replace来插入匹配的子字符串:
const string = "The quick brown fox jumped over the lazy QUICK dog";
console.log(
string.replace(/quick/gi, '<b>$&</b>')
);Run Code Online (Sandbox Code Playgroud)
您QUICK的原始代码不会替换您,因为
const replaced = string.replace(pattern,
Run Code Online (Sandbox Code Playgroud)
是传递的pattern,它是一个字符串,而不是构造的regex(其变量名是re)。如果您已通过re,则会看到:
const replaced = string.replace(pattern,
Run Code Online (Sandbox Code Playgroud)
不会保留原始大小写,因此需要'<b>$&</b>'。
| 归档时间: |
|
| 查看次数: |
1157 次 |
| 最近记录: |