我发现jquery代码(我忘记了原始站点)正在将html页面中的一个单词替换为星号(*),并且代码运行良好,但该代码只能用于替换每个单词, 不能改变单词的部分并且区分大小写。
jQuery代码:
String.prototype.repeat = function(num){
return new Array(num + 1).join(this);
}
/* Word or Character to be replace */
var filter = ['itch','asshole', 'uck', 'sex'];
$('body').text(function(i, txt){
// iterate over all words
for(var i=0; i<filter.length; i++){
// Create a regular expression and make it global
var pattern = new RegExp('\\b' + filter[i] + '\\b', 'g');
// Create a new string filled with '*'
var replacement = '*'.repeat(filter[i].length);
txt = txt.replace(pattern, replacement);
}
// returning txt will set the new text value for the current element
return txt;
});
词过滤器:
['itch','asshole', 'uck', 'sex'];
结果:
sex -> *** // successfully replacing
SEX -> SEX // not replaced, i want this word also replaced to ***
bitch -> bitch // not replaced, i want this word replaced to b****
如何修改这个jquery代码,以便可以用来改变单词中的一些字符而不区分大小写?
小提琴:http: //jsfiddle.net/bGhq8/
谢谢你。