2012-03-26 17 views

Antwort

5

Sie benötigen einen regulären Ausdruck für die

.replace(/\s/g,'-') 

\s jede Art von Charakter white-space ersetzen wird. Wenn Sie streng nach einer „normalen“ Leer Verwendung

/ /g

statt.

1

Sie benötigen einen regulären Ausdruck als ersten Parameter zu verwenden, die /g Modifier, um es alle Vorkommen zu machen ersetzen:

var replaced = input.replace(/ /g,'-'); 

Wenn Sie anstelle von Whitespace Zeichen ersetzen möchten ein Literalraum, müssen Sie \s anstelle von in der Regex verwenden; und wenn Sie eine beliebige Anzahl aufeinanderfolgender Leerzeichen durch einen Bindestrich ersetzen möchten, fügen Sie + nach dem oder \s hinzu.

1

Es ist nicht besonders deutlich in the MDN docs for String.replace angegeben, aber String.replace nur, dass ein Ersatz, es sei denn, die g Flagge in ihm enthalten ist, einen regulären Ausdruck verwenden, anstatt ein String:

Um eine globale Suche durchführen und ersetzen Enthalten Sie entweder den Schalter g im regulären Ausdruck oder geben Sie g in den Parameter flags ein, wenn der erste Parameter eine Zeichenfolge ist.

(aber darüber im Klaren sein, dass die flags Parameter Nicht-Standard ist, da sie auch dort beachten.)

So Sie tag.replace(/ /g,'-') wollen.

0

Verwenden Sie /\s/g anstelle von ' ' in Ihrer Frage

Verwandte Themen