angularjs过滤器中的regexp javascript

时间:2014-08-28 13:17:49

标签: javascript regex angularjs

这是我的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中的不良重音。它的效果很好,但每件只能使用一次,在第一次成功之后不再进行更换。怎么了?

1 个答案:

答案 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));
});