5

我们发现 angular-sanitize “清理”北欧字母表的字符并将它们变成 HTML 实体。因此,每次您在 INPUT 中输入ä字符并 $sanitize 您的输入时,您最终都会得到经过净化的字符串,这些字符串将这些字符替换为其他内容(ä ;),这会破坏输入,因为稍后我想显示该字符串或发送它到服务器。似乎用户输入了“ä”而不是“ä”。我们像往常一样在 UTF8 中工作,所以我们不需要这个。

目前我们有一个像这样的解决方案(应用程序是我们的角度应用程序):

app.config(function($provide){

    // Prevent $sanitize from converting nordic special characters (ö, ä, å) into HTML entities
    // ----------------------------------------------------------------------------------------
    // We don't have need for sanitizing umlauts. 

    $provide.decorator("$sanitize", function($delegate, $log){
        return function(text, target){

            var result = $delegate(text, target);

            result = result
                .replace(/ä|ä/g, 'ä')
                .replace(/Ä|Ä/g, 'Ä')
                .replace(/ö|ö/g, 'ö')
                .replace(/Ö|Ö/g, 'Ö')
                .replace(/å|å/g, 'å')
                .replace(/Å|Å/g, 'Å');

            return result;
        };
    });
});

但是我怀疑通过告诉 $sanitize 一些选项可能有更好的方法来实现这一点。我很欣赏如何以更好的方式做到这一点的建议。

4

0 回答 0