2016-07-13 5 views
0

Я пытаюсь выделить 4-й, 5-й и 6-й номера строки, обернув вокруг нее тег <span>. Строка содержит числа, запятые, знак доллара и иногда точки.Цитирование строк в строке (только цифры)

Вот моя строка:

"$116,023,150" 

Я хочу, чтобы выход точно такой же, за исключением 4-го, 5-ый и 6-ой номер завернуты внутри <span> тегов. Я попытался использовать цикл через строку, используя цикл for(). Однако я не хочу, чтобы какой-либо другой персонаж влиял на счет (только цифры в строке).

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

Скажет, строка будет отличаться, я все еще хочу, чтобы иметь 4-й, 5-й и 6-й номер, завернутый в <span> теге.

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

Как я могу достичь этого с помощью Javascript/jQuery?

+0

вы пытались с помощью 'Number.isInteger (значение)'? – Manatax

+0

Это действительно неясно, что заслуживает обертывания в теге span. Можете ли вы показать больше примеров? Или это просто факт, что они 4-6-й в строке? – 4castle

+0

Как насчет 'String # split'? – Rayon

ответ

0

Я бы использовал регулярное выражение с функцией замены, где в зависимости от «индекса» цифры он обернулся в теги <span>. (На самом деле не показатель, это текущее количество цифр до этой цифры)

$("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>

Смежные вопросы