Leerzeichen durch Unterstriche in JavaScript ersetzen?

Lesezeit: 3 Minuten

Leerzeichen durch Unterstriche in JavaScript ersetzen
Ali

Ich versuche, diesen Code zu verwenden, um Leerzeichen durch _ zu ersetzen, es funktioniert für das erste Leerzeichen in der Zeichenfolge, aber alle anderen Instanzen von Leerzeichen bleiben unverändert. Weiß jemand warum?

function updateKey()
{
    var key=$("#title").val();
    key=key.replace(" ","_");
    $("#url_key").val(key);
}

1643316311 934 Leerzeichen durch Unterstriche in JavaScript ersetzen
Halbmond frisch

Versuchen .replace(/ /g,"_");

Bearbeiten: oder .split(' ').join('_') wenn Sie eine Abneigung gegen REs haben

Bearbeiten: sagte Johannes Resig:

Wenn Sie eine Zeichenfolge mit einer statischen Suche und einem statischen Ersetzen suchen und ersetzen, ist es schneller, die Aktion mit .split(“match”).join(“replace”) auszuführen – was kontraintuitiv erscheint, aber funktioniert auf diese Weise in den meisten modernen Browsern. (Es werden Änderungen vorgenommen, um die Leistung von .replace(/match/g, “replace”) in der nächsten Version von Firefox stark zu verbessern – daher wird die vorherige Aussage nicht lange der Fall sein.)

  • Gibt es eine Möglichkeit, dies ohne die Regexp zu tun?

    – Ali

    13. Januar 09 um 22:20 Uhr

  • Grund, warum die antwortenden Personen /s/g nicht verwendet haben?

    – escarello

    14. Januar 09 um 2:10 Uhr

  • Anstatt / /g benutzen / /g – beide funktionieren in Javascript. Letzteres funktioniert auch in CoffeeScript.

    – Tom Leys

    25. Juli 13 um 21:41 Uhr

  • Stand 2015 ist .replace(/ /g,"_"); schneller als .split(' ').join('_').

    – Gabriel Tomitsuka

    20. Mai ’15 um 15:44 Uhr

  • Zukünftige Leute, die dieses @Inez durchsuchen, haben einen Link, um beide Geschwindigkeiten von Split/Join VS zu testen. ersetzen. Ab Ende 2018 ist der Austausch deutlich schneller.

    – Ricke

    17. August 18 um 14:48 Uhr

Versuche dies:

key=key.replace(/ /g,"_");

das macht ein globales Suchen/Ersetzen

Javascript ersetzen

  • Schöner Code!!! Das hat es geschafft!!!

    – hugo1

    19. Oktober 21 um 17:04 Uhr

1643316311 12 Leerzeichen durch Unterstriche in JavaScript ersetzen
Reich

Um Prasannas Frage unten zu beantworten:

Wie ersetzt man in Javascript mehrere Leerzeichen durch einzelne Leerzeichen?

Sie würden dieselbe Funktion verwenden replace mit einem anderen regulären Ausdruck. Der Ausdruck für Leerzeichen ist s und der Ausdruck für “1 oder mehrmals” ist + das Pluszeichen, also würden Sie Adams Antwort einfach durch Folgendes ersetzen:

key=key.replace(/s+/g,"_");

Leerzeichen durch Unterstriche in JavaScript ersetzen
Fizer Khan

Sie können dies versuchen

 var str="hello     world  !!";
 str = str.replace(/s+/g, '-');

Es werden sogar mehrere Leerzeichen durch einzelne ‘-‘ ersetzt.

Ich habe dafür einen JS-Leistungstest erstellt http://jsperf.com/split-and-join-vs-replace2

  • Es scheint, dass heutzutage Ersatz die bessere Wahl ist

    – Homann

    25. September 2012 um 10:01 Uhr

  • Kave – was? Obwohl nicht alle Browser gleich sind, ist Split/Join im Durchschnitt viel besser. Tatsächlich ist es in vielen modernen Browsern einen Ton besser! Danke Inez für die Einrichtung!

    – David Koch

    21. Oktober 12 um 0:13 Uhr

  • Jetzt, etwas mehr als ein Jahr später, führt der obige Test in Chrome 32.0.1700.107 .. str.replace() zu weitaus besseren Ergebnissen (64 % schneller).

    – jenovakind

    12. Februar 14 um 4:50 Uhr


1643316312 452 Leerzeichen durch Unterstriche in JavaScript ersetzen
Arschid KV

Ersetzen Leerzeichen mit Unterstrich

var str="How are you";
var replaced = str.split(' ').join('_');

Ausgabe: Wie geht es dir

  • Es scheint, dass heutzutage Ersatz die bessere Wahl ist

    – Homann

    25. September 2012 um 10:01 Uhr

  • Kave – was? Obwohl nicht alle Browser gleich sind, ist Split/Join im Durchschnitt viel besser. Tatsächlich ist es in vielen modernen Browsern einen Ton besser! Danke Inez für die Einrichtung!

    – David Koch

    21. Oktober 12 um 0:13 Uhr

  • Jetzt, etwas mehr als ein Jahr später, führt der obige Test in Chrome 32.0.1700.107 .. str.replace() zu weitaus besseren Ergebnissen (64 % schneller).

    – jenovakind

    12. Februar 14 um 4:50 Uhr


Ich weiß, das ist alt, aber ich habe niemanden gesehen, der erwähnt hat, dass der String verlängert wurde prototype.

String.prototype.replaceAll = function(search, replace){
    if(!search || !replace){return this;} //if search entry or replace entry empty return the string
    return this.replace(new RegExp('[' + search + ']', 'g'), replace); //global RegEx search for all instances ("g") of your search entry and replace them all.
};

  • Sie haben niemanden dabei gesehen, weil es eine schreckliche Idee ist. Weitere Informationen finden Sie in dieser anderen SO-Frage.

    Benutzer9016207

    15. Mai ’18 um 19:05 Uhr

.

665170cookie-checkLeerzeichen durch Unterstriche in JavaScript ersetzen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy