我在JavaScript中编写了一个函数,它将字符串中的重音替换为某些字符。
function textToURL(str) {
str = str.replace(/á/gi,'a');
str = str.replace(/é/gi,'e');
str = str.replace(/í/gi,'i');
str = str.replace(/ó/gi,'o');
str = str.replace(/ö/gi,'o');
str = str.replace(/ő/gi,'o');
str = str.replace(/ú/gi,'u');
str = str.replace(/ü/gi,'u');
str = str.replace(/ű/gi,'u');
str = str.replace(/ /gi,'-');
return str;
}
我确定使用数组或Regex编写此代码的方式更简洁,更简单,但是如何?
提前致谢。
答案 0 :(得分:0)
这样的事可能适合你:
// define a translator map
var dict = {"á": "a", "é": "e", "í": "i", "ó": "o", "ú": "u", " ": "-"}
var str = "ápplé órángé"
var repl = str.replace(/[áéíóú ]/g, function($0) { return dict[$0]; });
//=> apple-orange
答案 1 :(得分:0)
您可以使用关联数组,然后用值
替换键str = "áéíóöőúüű "
var myArray = {á:"a", é:"e", í:"i",ó:"o", ö:"o", ő:"o",ú:"u", ü:"u", ű:"u", " ":"-"}
var index;
for(var key in myArray){
str = str.replace(key, myArray[key])
}
以下是自己尝试的jsfiddle链接:http://jsfiddle.net/7sdoh65a/1/