Supposons que je veuille rendre les éléments suivants réutilisables :
function replace_foo(target, replacement) {
return target.replace("string_to_replace",replacement);
}
Je pourrais faire quelque chose comme ça :
function replace_foo(target, string_to_replace, replacement) {
return target.replace(string_to_replace,replacement);
}
Avec les chaînes littérales, c'est assez facile. Mais que se passe-t-il si je veux être un peu plus délicat avec l'expression rationnelle ? Par exemple, disons que je veux remplacer tout mais string_to_replace
. Instinctivement, j'essaierais d'étendre ce qui précède en faisant quelque chose du genre :
function replace_foo(target, string_to_replace, replacement) {
return target.replace(/^string_to_replace/,replacement);
}
Cela ne semble pas fonctionner. Je pense qu'il pense que string_to_replace
est une chaîne littérale, plutôt qu'une variable représentant une chaîne. Est-il possible de créer des regex JavaScript à la volée en utilisant des variables de type chaîne ? Quelque chose comme ça serait génial si c'est possible :
function replace_foo(target, string_to_replace, replacement) {
var regex = "/^" + string_to_replace + "/";
return target.replace(regex,replacement);
}