用Java去除口音 [英] Javascript removing accents
本文介绍了用Java去除口音的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想使用Evan Elliott的代码(如下)删除字符串中的重音符号,但是它返回一个 a,而不是每个字符的原始版本。我在页面顶部声明< meta charset = utf-8>
。
I want to use Evan Elliott's code (below) to remove accents in strings but its returns an "a" instead of the respective vanilla version of each character. I declare <meta charset="utf-8">
at the top of my page.
function NormalizeString(s){
var r=s.toLowerCase();
var r=s.toLowerCase();
r = r.replace(new RegExp("\\s", 'g'),"");
r = r.replace(new RegExp("[àáâãäå]", 'g'),"a");
r = r.replace(new RegExp("æ", 'g'),"ae");
r = r.replace(new RegExp("ç", 'g'),"c");
r = r.replace(new RegExp("[èéêë]", 'g'),"e");
r = r.replace(new RegExp("[ìíîï]", 'g'),"i");
r = r.replace(new RegExp("ñ", 'g'),"n");
r = r.replace(new RegExp("[òóôõö]", 'g'),"o");
r = r.replace(new RegExp("œ", 'g'),"oe");
r = r.replace(new RegExp("[ùúûü]", 'g'),"u");
r = r.replace(new RegExp("[ýÿ]", 'g'),"y");
r = r.replace(new RegExp("\\W", 'g'),"");
return r;
}
好吧,我做了一个测试页来尝试找出问题所在:
Ok I made a test page to try to find out what the problem is:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
function NormalizeString(s){
var r=s.toLowerCase();
var r=s.toLowerCase();
r = r.replace(new RegExp("\\s", 'g'),"");
r = r.replace(new RegExp("[àáâãäå]", 'g'),"a");
r = r.replace(new RegExp("æ", 'g'),"ae");
r = r.replace(new RegExp("ç", 'g'),"c");
r = r.replace(new RegExp("[èéêë]", 'g'),"e");
r = r.replace(new RegExp("[ìíîï]", 'g'),"i");
r = r.replace(new RegExp("ñ", 'g'),"n");
r = r.replace(new RegExp("[òóôõö]", 'g'),"o");
r = r.replace(new RegExp("œ", 'g'),"oe");
r = r.replace(new RegExp("[ùúûü]", 'g'),"u");
r = r.replace(new RegExp("[ýÿ]", 'g'),"y");
r = r.replace(new RegExp("\\W", 'g'),"");
return r;
}
function loadhandler(){
alert(NormalizeString('Opérations'))
}
</script>
</head>
<body class="" onload="loadhandler()">
</body>
</html>
Opération的输出仍然是 oparation。是因为我的IE7设置吗?
Still the output for "Opération" is "oparation". Is it because of my IE7 settings?
Opération在Firefox中输出 oparation太:(
"Opération" outputs "oparation" in Firefox too :(
推荐答案
此功能可能对您需要的功能有用:
This function may be useful for what you need:
function removeAccents (text) {
var accents = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž',
accentsOut = "AAAAAAaaaaaaOOOOOOOooooooEEEEeeeeeCcDIIIIiiiiUUUUuuuuNnSsYyyZz",
textNoAccents = [];
for (var i in text) {
var idx = accents.indexOf(text[i]);
if (idx != -1)
textNoAccents[i] = accentsOut.substr(idx, 1);
else
textNoAccents[i] = text[i];
}
return textNoAccents.join('');
}
这篇关于用Java去除口音的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文