Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript从字符串中删除某些字符_Javascript_Regex_Str Replace_Diacritics - Fatal编程技术网

使用JavaScript从字符串中删除某些字符

使用JavaScript从字符串中删除某些字符,javascript,regex,str-replace,diacritics,Javascript,Regex,Str Replace,Diacritics,我用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');

我用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;
}
我相信有一种更干净、更简单的方法可以用数组或正则表达式编写代码,但是如何编写呢


提前感谢。

类似的内容可能适合您:

// 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

可以使用关联数组,然后用其值替换键

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])
}
下面是您自己尝试的JSFIDLE链接: