3

有没有办法动态替换重音字符,例如以下?

requesón => requeson

我的意思是每个重音(或其他)字符都将被替换为正常字符。

这可能使用 ColdFusion 吗?

4

1 回答 1

7

您可以通过 java 文本规范化和正则表达式修复重音字符。cflib 上有一个函数可以做到这一点:

来自:http ://cflib.org/udf/deAccent

function deAccent(str){
    //based on the approach found here: http://stackoverflow.com/a/1215117/894061
    var Normalizer = createObject("java","java.text.Normalizer");
    var NormalizerForm = createObject("java","java.text.Normalizer$Form");
    var normalizedString = Normalizer.normalize(str, createObject("java","java.text.Normalizer$Form").NFD);
    var pattern = createObject("java","java.util.regex.Pattern").compile("\p{InCombiningDiacriticalMarks}+");
    return pattern.matcher(normalizedString).replaceAll("");
}
于 2013-01-31T16:46:44.870 回答