2017-01-13 16 views
-3

У меня есть страница с большим количеством цен, перечисленных в этом стандартном формате США: $ 4,99, $ 600,00 и т.д.

Поскольку все они имеют «$» и «» Я пытаюсь захватить долларовые числа между этими двумя символами и обернуть всего лишь сумму доллара в промежутке.

пример: $ 4,99 становится $<span>4</span>.99

спасибо !!!

+2

Пожалуйста, прочитайте [ask]. Ключевые фразы: «Поиск и исследование» и «Объясните ... любые трудности, которые мешали вам самим решить». –

ответ

1

REGEXP:

(\b\d+)(?=\.) 

Первоначальный текст:

$4444.99 

РЕЗУЛЬТАТ:

const regex = /(\b\d+)(?=\.)/gm; 
 
const str = `\$4444.99`; 
 
const subst = `<span>\$1</span>`; 
 

 
// The substituted value will be contained in the result variable 
 
const result = str.replace(regex, subst); 
 

 
console.log(result);

См:https://regex101.com/r/pA0XdW/1

+0

это потрясающе! просто то, что я искал. Благодаря!!! – germ

+0

добро пожаловать. * Не забудьте отметить меня как ответ на ваш вопрос. если я вам помогу. * –

0

Вы можете использовать оболочку с классом, чтобы обернуть сумму в долларах, но не вся цена.

$<span class="dollar-value">4</span>.99

Затем вы можете использовать JQuery, чтобы получить значение доллара, используя класс доллара значение (.dollar-значение)

0

Это решение работает для тех, кто заинтересован.

$('.price').html(function(i, html) { 
    html = $.trim(html); 
    return html.slice(0, 1) + "<span>" + html.slice(1,-3) + "</span>" + html.slice(-3); 
}); 

Это не совсем то, о чем я просил, но делает трюк. Он просто обрезает первые ($) и последние 3 (.00) символы и обертывает текст между ними в промежутке.