Réponses:
Ce qui suit ferait mais ne remplacera qu'une occurrence:
"string".replace('/', 'ForwardSlash');
Pour un remplacement global, ou si vous préférez les expressions régulières, il vous suffit d'échapper la barre oblique:
"string".replace(/\//g, 'ForwardSlash');
"string".replace('/', 'ForwardSlash', 'g')mais c'est un argument non standard qui ne fonctionne que dans Firefox afaik.
"string".replace(/\//g, 'ForwardSlash');fonctionne mais supprimez le / g de ceci et cela ne fonctionne pas.
/. Sans le g, il ne remplace qu'une seule instance. Et si vous supprimez, /gvous cassez complètement l'expression régulière puisque le dernier / est le délimiteur de fin.
Sans utiliser regex (bien que je ne le ferais que si la chaîne de recherche est une entrée utilisateur):
var str = 'Hello/ world/ this has two slashes!';
alert(str.split('/').join(',')); // alerts 'Hello, world, this has two slashes!'
var str = '/questions'; // input: "/questions"
while(str.indexOf('/') != -1){
str = str.replace('/', 'http://stackoverflow.com/');
}
alert(str); // output: "http://stackoverflow.com/questions"
Le regex proposé /\//gn'a pas fonctionné pour moi; le reste de la ligne ( //g, replacement);) a été commenté.
C'est l'idée de Christopher Lincolns mais avec un code correct:
function replace(str,find,replace){
if (find != ""){
str = str.toString();
var aStr = str.split(find);
for(var i = 0; i < aStr.length; i++) {
if (i > 0){
str = str + replace + aStr[i];
}else{
str = aStr[i];
}
}
}
return str;
}
Exemple d'utilisation:
var somevariable = replace('//\\\/\/sdfas/\/\/\\\////','\/sdf','replacethis\');
Le remplacement global des chaînes Javascript est inutilement compliqué. Cette fonction résout ce problème. Il y a probablement un petit impact sur les performances, mais je suis sûr que c'est négligeable.
Voici une fonction alternative , semble beaucoup plus propre, mais est en moyenne environ 25 à 20% plus lente que la fonction ci-dessus:
function replace(str,find,replace){
if (find !== ""){
str = str.toString().split(find).join(replace);
}
return str;
}