有没有一种方法可以在页面中用一个replace单词与另一个单词进行区分但不区分大小写,以便它替换每个单词,还可以保留刚替换的单词的原始大小写?我目前正在使用这种区分大小写的方法。

document.body.innerHTML = document.body.innerHTML.replace(/hello/g, 'hi');

最佳答案

在g之后添加一个i ... / hello / gi表示贪婪,不区分大小写。
啊啊,错过了保留案件的一部分...这变得有点复杂。

var matches1 = document.getElementById('test').innerHTML.match(/hello/g);
var matches2 = document.getElementById('test').innerHTML.match(/Hello/g);
for(var i=0;i<matches1.length;i++){
  document.getElementById('test').innerHTML =  document.getElementById('test').innerHTML.replace(matches1[i], 'hi');
}
for(var i=0;i<matches2.length;i++){
   document.getElementById('test').innerHTML =  document.getElementById('test').innerHTML.replace(matches2[i], 'Hi');
}


还没有测试过,但是应该可以。

编辑:/ \ shello \ s /不适用于\ s,这是一个小提琴。

EDIT2:给@Felix Kling一个cookie!

document.getElementById('test').innerHTML = document.getElementById('test').innerHTML.replace(/hello/g, 'hi').replace(/Hello/g, 'Hi');


一样好,而且更短!同样的小提琴!

关于javascript - javascript不区分大小写的替换方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24817321/

10-11 19:58