2009-12-19 9 views

Antwort

8

Es ist besser zu nutzen:

var string = "find this and find that".replace(/find/g, "found"); 

alle Vorkommen zu ersetzen.

+0

Entschuldigung, dass ich dumm bin, aber wie würde ich das in meinem Fall tun? – Rich

+0

var foo = bar.replace (/ \/g, '-'); das bedeutet, finden alle regexp Übereinstimmungen - Regexps in js sind umgeben von '/', mit Option - finden Sie alle 'g', Leerzeichen ('\' - maskiert) und ersetzen durch '-'. –

+0

Warum denken Sie, dass es besser ist, das als 'bar.replace ('', '-')' 'zu verwenden? – tangens

4

Ja, Sie können. Warum hast du das nicht versucht, bevor du fragst?

+1

Achtung! Wie @ Alexander-Shvetsov erklärt in seiner Antwort, ersetzt bar.replace ('', '-') 'nur das erste Vorkommen von" ". – tangens

2

Die beste Informationsquelle für reguläre Ausdrücke in verschiedenen Sprachen, die ich gefunden habe, ist Regular-Expressions.info (und ich verlinkte direkt mit dem Javascript-Abschnitt dort).

Wie für Ihre spezielle Frage, ja, können Sie so etwas tun. Hast Du es versucht?

var before = 'North America'; 
var after = before.replace(/ +/g, '-') 
alert('"' + before + '" becomes "' + after + '"'); 

Verwenden Sie die Seite, die ich Ihnen gezeigt habe, um die obige Regex zu analysieren. Beachten Sie, wie es einen oder mehrere Leerzeichen mit einem einzigen Bindestrich ersetzt, wie Sie angefordert haben.

Verwandte Themen