Antworten:
Folgendes würde aber nur ein Vorkommen ersetzen:
"string".replace('/', 'ForwardSlash');
Für einen globalen Ersatz oder wenn Sie reguläre Ausdrücke bevorzugen, müssen Sie sich nur dem Schrägstrich entziehen:
"string".replace(/\//g, 'ForwardSlash');
"string".replace('/', 'ForwardSlash', 'g')aber das ist ein nicht standardmäßiges Argument, das nur in Firefox afaik funktioniert.
"string".replace(/\//g, 'ForwardSlash');funktioniert, aber entfernen Sie das / g daraus und es funktioniert nicht.
/. Ohne das g wird nur eine Instanz ersetzt. Und wenn Sie entfernen /g, brechen Sie den regulären Ausdruck vollständig, da das letzte / das Endtrennzeichen ist.
Ohne Verwendung von Regex (obwohl ich dies nur tun würde, wenn die Suchzeichenfolge vom Benutzer eingegeben wird):
var str = 'Hello/ world/ this has two slashes!';
alert(str.split('/').join(',')); // alerts 'Hello, world, this has two slashes!'
Ist das was du willst?
'string with / in it'.replace(/\//g, '\\');
var str = '/questions'; // input: "/questions"
while(str.indexOf('/') != -1){
str = str.replace('/', 'http://stackoverflow.com/');
}
alert(str); // output: "http://stackoverflow.com/questions"
Die vorgeschlagene Regex /\//ghat bei mir nicht funktioniert; Der Rest der Zeile ( //g, replacement);) wurde auskommentiert.
Dies ist Christopher Lincolns Idee, aber mit korrektem Code:
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;
}
Anwendungsbeispiel:
var somevariable = replace('//\\\/\/sdfas/\/\/\\\////','\/sdf','replacethis\');
Das Ersetzen globaler Javascript-Zeichenfolgen ist unnötig kompliziert. Diese Funktion löst dieses Problem. Es gibt wahrscheinlich eine kleine Auswirkung auf die Leistung, aber ich bin sicher, dass sie vernachlässigbar ist.
Hier ist eine alternative Funktion, sieht viel sauberer aus, ist aber im Durchschnitt etwa 25 bis 20 Prozent langsamer als die oben genannte Funktion:
function replace(str,find,replace){
if (find !== ""){
str = str.toString().split(find).join(replace);
}
return str;
}