Ja, das kann man in JavaScript machen:
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";
}
});
Eine andere Möglichkeit ist eine Nachschlagetabelle:
var replacements = {
"á": "a",
"é": "e",
"í": "i",
"ó": "o",
"ú": "u"
};
var str = "áéíóú";
var result = str.replace(/[áéíóú]/g, function(m) {
return replacements[m];
});
Diese funktionieren, weil replace
kann einen regulären Ausdruck akzeptieren, und die "Ersetzung" kann eine Funktion sein. Die Funktion erhält die übereinstimmende Zeichenfolge als Argument. Wenn die Funktion nichts zurückgibt, oder wenn sie undefined
wird das Original beibehalten; wenn es etwas anderes zurückgibt, wird dieses stattdessen verwendet. Der reguläre Ausdruck /[áéíóú]/g
ist eine "Zeichen"-Klasse, die "jedes dieser Zeichen" bedeutet, und die g
am Ende bedeutet "global" (die gesamte Zeichenfolge).