这是我的angularjs过滤器:
app.filter('cleanit', function() {
return function (input) {
input = input.replace(new RegExp('é'),'é');
input = input.replace(new RegExp('É'),'É');
input = input.replace(new RegExp('Ô'),'Ô');
input = input.replace(new RegExp('''), '\'');
return input;
}
});
我用它来替换使用Google Feed API解析的Feed中的不良重音。它的效果很好,但每件只能使用一次,在第一次成功之后不再进行更换。怎么了?
答案 0 :(得分:4)
正如RevanProdigalKnight评论的那样,您需要指定g
修饰符来全局替换匹配项:
input = input.replace(new RegExp('é', 'g'), 'é');
input = input.replace(/é/g, 'é');
BTW,这是解决问题的另一种方法(而不是使用替换函数指定charref。)
input = input.replace(/&#x([a-f0-9]+);/ig, function($0, $1) {
// The return value is used as a replacement string
return String.fromCharCode(parseInt($1, 16));
});