PHPで可能なように、1つの命令で多くの文字のjavascriptで文字を置き換える簡単な方法はありますか?
つまり、次のようなものです。
replace('áéíóú', 'aeiou');
これにより、á が a に、é が e に、í が i に、というように置き換えられます。
事前にどうもありがとう、
PHPで可能なように、1つの命令で多くの文字のjavascriptで文字を置き換える簡単な方法はありますか?
つまり、次のようなものです。
replace('áéíóú', 'aeiou');
これにより、á が a に、é が e に、í が i に、というように置き換えられます。
事前にどうもありがとう、
グローバル フラグで正規表現を使用します。
var map = {
"á": "a",
"é": "e",
"í": "i",
"ó": "o",
"ú": "u"
};
"áéíóú".replace(/[áéíóú]/g, function(m){
return map[m];
});
あまり。これを試して:
var map = {'á': 'a', 'é': 'e', 'í': 'i', 'ó': 'o', 'ú': 'u'};
var result = 'áéíóú'.replace(/./g, function(m) { return map[m] ? map[m] : m; });
はい、JavaScript でそれを行うことができます。
var str = "áéíóú";
var result = str.replace(/[áéíóú]/g, function(m) {
switch (m) {
case "á":
return "a";
case "é":
return "e";
case "í":
return "i";
case "ó":
return "o";
case "ú":
return "u";
}
});
もう 1 つの方法は、ルックアップ テーブルです。
var replacements = {
"á": "a",
"é": "e",
"í": "i",
"ó": "o",
"ú": "u"
};
var str = "áéíóú";
var result = str.replace(/[áéíóú]/g, function(m) {
return replacements[m];
});
それらreplace
は正規表現を受け入れることができ、「置換」は関数にすることができるため機能します。この関数は、一致した文字列を引数として受け取ります。関数が何も返さない場合、または を返すundefined
場合、オリジナルが保持されます。他の何かを返す場合は、代わりにそれが使用されます。正規表現/[áéíóú]/g
は、「これらの文字のいずれか」を意味する「文字」クラスでありg
、最後の は「グローバル」(文字列全体) を意味します。