使用ColdFusion替换所有带重音的元音

时间:2013-01-31 16:10:38

标签: regex coldfusion replace

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

requesón => requeson

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

这可以使用ColdFusion吗?

1 个答案:

答案 0 :(得分:6)

您可以通过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("");
}