2016-07-13 15 views
0

Ich versuche, die 4., 5. und 6. Nummer eines Strings hervorzuheben, indem Sie einen <span> Tag darum wickeln. Die Zeichenfolge enthält Zahlen, Kommas, ein Dollarzeichen und gelegentlich Punkte.Schleife durch Zahlen in einer Zeichenfolge (nur Zahlen)

Hier ist meine string:

"$116,023,150" 

ich die Ausgabe wollen genau das gleiche, mit Ausnahme der 4., 5. und 6. Zahl innerhalb <span> Tags gewickelt. Ich habe versucht, eine Schleife durch die Zeichenfolge mit einer for() Schleife. Ich möchte jedoch nicht, dass irgendein anderes Zeichen die Anzahl beeinflusst (nur die Zahlen in der Zeichenfolge).

"$116,<span>0</span><span>2</span><span>3</span>,150" 

sagen Lassen Sie die Zeichenfolge anders sein würde, ich den 4., 5. und 6. Zahl eingewickelt in einem <span> Tag noch haben wollen.

"$61,0<span>0</span><span>2</span>.<span>1</span>2" == "$61,002.12" 

Wie kann ich dies mit Javascript/jQuery erreichen?

+0

haben Sie versucht, mit 'Number.isInteger (Wert)'? – Manatax

+0

Es ist wirklich unklar, was die Umhüllung in einem 'span' Tag verdient. Können Sie mehr Beispiele zeigen? Oder ist es nur die Tatsache, dass sie die 4. bis 6. in der Saite sind? – 4castle

+0

Wie wäre es mit "String # Split"? – Rayon

Antwort

0

Ich würde eine Regex mit einer Ersatzfunktion verwenden, wo es abhängig von der "Index" der Ziffer in <span> Tags eingewickelt wird. (Nicht wirklich der Index, dann ist es die aktuelle Anzahl der Stellen bis zu dieser Ziffer)

$("div").html(function(_, old) { 
 
    var i = 0; 
 
    return old.replace(/\d/g, function(num) { 
 
    i++; 
 
    return i >= 4 && i <= 6 ? "<span>" + num + "</span>" : num; 
 
    }); 
 
});
span { font-weight: bold }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div>$116,023,150</div> 
 
<div>$61,002.12</div>

Verwandte Themen