2016-06-15 2 views
1

У меня есть два div с именами классов leased и limit. В каждом div есть значение, и я использую jQuery, чтобы скрыть другой div, называемый #next, если значение в div .leased выше, чем значение в div .limit.Анализ и сравнение валютных значений

Все это отлично работает со следующим кодом, однако я планирую, чтобы значения в divs были валютами, то есть £10,000.00. Таким образом, jQuery ничего не возвращает.

Что мне нужно сделать для нижеследующего кода, чтобы он мог разобрать валюту, пожалуйста?

<div class="limit">£10,000.00</div> 
<div class="leased">£11,000.00</div> 
<div id="next">next</div> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<script type="text/javascript"> 
    $("#next").toggle(parseInt($(".leased").text(), 10) < parseInt($(".limit").text(), 10)); 
</script> 

спасибо.

+1

Возможный дубликат [RegExp для вычисления значения валюты] (http://stackoverflow.com/questions/1357946/regexp-to-parse-currency-value) –

ответ

3

Вы можете использовать регулярное выражение для удаления нечисловых символов из text() затем запустить их через parseFloat(), прежде чем сделать сравнение, как это:

var limit = parseFloat($('.limit').text().replace(/[^0-9\.]+/g,"")); 
var leased = parseFloat($('.leased').text().replace(/[^0-9\.]+/g,"")); 
$("#next").toggle(leased < limit); 

Working example

В качестве альтернативы вы можете добавить простые значения в HTML с использованием атрибутов data-* и выполнять логику этих значений напрямую, например:

<div class="limit" data-val="10000.00">£10,000.00</div> 
<div class="leased" data-val="11000.00">£11,000.00</div> 
<div id="next">next</div> 
$("#next").toggle($('.leased').data('val') < $('.limit').data('val')); 

Working example

+0

Это фантастика Рори, большое спасибо за обмен. Прекрасно работает! –

0

Одним из вариантов являются использование готовой библиотеки, которая может конвертировать валютные строки в число, как Numeraljs

В противном случае, как это было предложен в других ответах и ​​комментариях, либо удалить все нечисловое символов или создать регулярное выражение, которое потенциально (в зависимости от ваших потребностей) также поддерживает запятую как разделитель десятичных чисел, поскольку такой синтаксис используется в некоторых странах.

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