Javascript 如何用其他字符替换字符串中的字符?

Javascript 如何用其他字符替换字符串中的字符?,javascript,Javascript,我想用其他字符替换字符串中的某些字符。我做了研究,发现最好的方法是使用正则表达式。。。 但是,有些东西不起作用。。。 这是我到目前为止所做的 var alphabet = { 'á':'a', 'é':'e', 'í':'i' }; var word = $("input[name=phrase]").val(); alert(word); //output: ok! var url = word.replace(/áéí|/g, function(s) { re

我想用其他字符替换字符串中的某些字符。我做了研究,发现最好的方法是使用正则表达式。。。 但是,有些东西不起作用。。。 这是我到目前为止所做的

var alphabet = {
   'á':'a',
   'é':'e',
   'í':'i'
};

var word = $("input[name=phrase]").val();
alert(word);  //output: ok!

var url = word.replace(/áéí|/g, function(s) {
    return alphabet[s];
});

alert(url); //output: undefined,undefined,undefined...

使用
[]
匹配这些字符中的任何一个,并使用
()
捕获匹配项,而不是查找这些连续字符的匹配项

var url = word.replace(/[áéí]/g, function(s) {
    return alphabet[s];
});
演示:



正如捕获组所指出的,这是不必要的。更新以反映这一改进。

使用
[]
匹配这些字符中的任何一个,并使用
()
捕获匹配,而不是查找这些连续字符的匹配

var url = word.replace(/[áéí]/g, function(s) {
    return alphabet[s];
});
演示:



正如捕获组所指出的,这是不必要的。更新以反映这一改进。

管道是打字错误还是代码的一部分?我想是的,只是要确定一下。:)管道是打字错误还是代码的一部分?我想是的,只是确定一下。:)真的需要一个捕获小组吗?不管怎样,+1。不,没有必要
word.replace(/[áаí]/g,函数{return alphabet[s];})
工作正常。谢谢。。。这个主意行得通。如果要替换的字符超过1个怎么办。比如“…”:“它在正则表达式中是如何运行的?我试着用引号,比如“…”,但是它把实际的引号和替换字符“\''混淆了:@Marco:然后去掉
[]
,用
来区分可能性:
/á|é|í| | | | | | | | | | | | | | | | | | | |?也许你有一个,这是一个字符。只是说并不是所有看起来像多个字符的东西都由多个字符组成;)真的需要一个捕获小组吗?不管怎样,+1。不,没有必要
word.replace(/[áаí]/g,函数{return alphabet[s];})
工作正常。谢谢。。。这个主意行得通。如果要替换的字符超过1个怎么办。比如“…”:“它在正则表达式中是如何运行的?我试着用引号,比如“…”,但是它把实际的引号和替换字符“\''混淆了:@Marco:然后去掉
[]
,用
来区分可能性:
/á|é|í| | | | | | | | | | | | | | | | | | | |?也许你有一个,这是一个字符。只是说并不是所有看起来像多个字符的东西都由多个字符组成;)