2016-04-24 7 views
0

Ich habe an einer Frage gearbeitet, wo ich eine JS-Funktion verwenden muss, die alle Zahlen in einem DIV-Element neu formatiert, das etwas Text enthält. Zum Beispiel, wenn der Satz „Ich habe 56 Äpfel“ 56 sollte herauskommen unterstrich, ist dies ein jsfiddle Link von dem, was ich getan habe: https://jsfiddle.net/2v43yonzWie unterstreiche ich Zahlen aus einer Zeichenkette in Javascript?

#number { /* this is the style for verb encodings */ 
    text-decoration: underline; 
} 

Bitte den Rest des Codes auf jsfiddle finden.

+0

Bitte fügen Sie den Code (oder eine vereinfachte Version davon) in Ihre Frage ein, nicht nur einen Link zu jsfiddle. – Benjamin

Antwort

1

Sie waren wirklich nah, Ihr regulärer Ausdruck war nur ein wenig aus.

Ich ersetzen es mit diesem: var txt = str.replace(/\d+/, '<span id="'+s+'">\$&</span>'); um die Linie 20

Die Regex: /\d+/ bedeutet Match 1 oder mehr numerischen Zeichen.

https://jsfiddle.net/2v43yonz/1/

ich wieder auf Ihre Geige sah sah, was Sie mit makeRegExp vorhatten. Das Problem dabei ist, dass Sie jede Zeichenfolge mit einer Wortgrenze versehen haben, sodass nur eine einzelne Zahl gefunden werden kann.

Schauen Sie sich diese Geige für das Update: https://jsfiddle.net/2v43yonz/2/

Vielleicht wollte man das tun, wenn nach Wörtern suchen, aber es wird nicht für diesen Fall zu arbeiten.

+0

'str.replace (/ (\ d +)/g, ' $ 1') sieht besser aus;) –

+0

danke für deine hilfe ich schätze es wirklich – Rebecca

Verwandte Themen