使用 JavaScript 从字符串中删除某些字符 [重复]

Posted

技术标签:

【中文标题】使用 JavaScript 从字符串中删除某些字符 [重复]【英文标题】:Remove certain characters from a string with JavaScript [duplicate] 【发布时间】:2016-03-05 05:41:39 【问题描述】:

我用 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;

我确信有一种更干净、更简单的方法可以用数组或正则表达式编写这段代码,但是如何呢?

提前致谢。

【问题讨论】:

【参考方案1】:

你可以使用关联数组,然后用他的值替换键

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/

【讨论】:

【参考方案2】:

这样的事情可能对你有用:

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

【讨论】:

以上是关于使用 JavaScript 从字符串中删除某些字符 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用字符串擦除()和字符串长度()从字符串中删除某些字符

如何使用命令提示符或批处理文件从字符串中删除某些字符?

使用javascript从字符串中删除字符

从文件夹中所有文件的文件名中替换或删除某些字符[关闭]

使用javascript从字符串中删除双引号[重复]

仅保留 A-Z 0-9 并使用 javascript 从字符串中删除其他字符