Я пытаюсь удалить конечные нули после , или . в валюте, все еще сохраняя знак валюты. Например, от €90.00 к €90, от 90.00€ к 90€ и от €90.33 к €90.33.
Пример можно найти ниже:
$('.product-price-wrapp').each(function() {
var productPrice = $(this).find('.price').text();
var trimPrice = productPrice.substr(0,productPrice.indexOf(','));
productPrice.text(trimPrice);
});body {
padding: 20px;
background: #20262E;
font-family: Helvetica;
}
.price {
color: green;
}
.price span {
color: #747474;
}
.price:first-child,
.price:last-child,
.price:nth-of-type(6){
color: red;
}<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script>
<div class = "product-price-wrapp">
<div class = "price"><span>Product Price</span> 90,00 €</div>
<br>
<div class = "price"><span>Product Price</span> 90,30 €</div>
<br>
<div class = "price"><span>Product Price</span> 90,45 €</div>
<br>
<div class = "price"><span>Product Price</span> 92,67 €</div>
<br>
<div class = "price"><span>Product Price</span> 33.33 €</div>
<br>
<div class = "price"><span>Product Price</span> £22.00</div>
<br>
<div class = "price"><span>Product Price</span> £72,22</div>
<br>
<div class = "price"><span>Product Price</span> £72,00</div>
</div>РАБОЧАЯ ВЕРСИЯ: JSFiddle
Вы все замечательные, большое вам спасибо за вашу помощь! Кредит: @Cocest @A. Рамос @ Иван
Привет, Cocest, я попытался отредактировать вопрос, но Роберт Харви все еще [приостановил]. Следует ли мне создать новый вопрос?
Я отредактировал вопрос для вас. Просмотрите это. Спасибо.
Попытайтесь объяснить, что делает пример кода
Большое вам спасибо за этот Cocest.
Итак, в примере кода я попытался создать цикл, который проверял бы каждый класс ценовых ведьм ".price", и если после него стоит 00, или. он заменит цену без нулей. Например, от 90,00 евро до 90 евро, от 90,00 евро до 90 евро и от 90,33 евро до 90,33 евро.
Я не думаю, что пример кода необходим. Может, стоит убрать
Я удалил код, думаю, теперь все в порядке?
@Cocest, код лучше оставить, он показывает, что пытался решить проблему. Вы должны вернуть код в исходное сообщение.

Попробуйте это решение. Он более гибкий, работает за любую цену.
var c = '90,00 €'; //assign currency (value)
c = /[.,]0*[1-9]+/.test(c) ? c : c.replace(/[.,]0+/, '');
// use the currency here
Вы можете использовать регулярное выражение, чтобы определить, содержит ли цена запятую: ,00 или .00, если это так, вы можете заменить ее пустой строкой.
Я использовал это регулярное выражение:
/[\.,]0{2}/
[\.,] ищет либо ., либо ,
0{2} с двумя нулями
Вот полный код.
$('.product-price-wrapp > .price').each(function(index, element) {
var priceElement = $(element);
priceElement.text(
'Product Price ' + priceElement.text().substring(14).replace(/[\.,]0{2}/, '')
);
});<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script>
<div class = "product-price-wrapp">
<div class = "price"><span>Product Price</span> 90,00 €</div>
<br>
<div class = "price"><span>Product Price</span> 90,30 €</div>
<br>
<div class = "price"><span>Product Price</span> 90,45 €</div>
<br>
<div class = "price"><span>Product Price</span> 92,67 €</div>
<br>
<div class = "price"><span>Product Price</span> 33.33 €</div>
<br>
<div class = "price"><span>Product Price</span> £22.00</div>
<br>
<div class = "price"><span>Product Price</span> £72,22</div>
<br>
<div class = "price"><span>Product Price</span> £72,00</div>
</div>вам нужно добавить еще один контейнер для цены как таковой, если вам нужно сохранить цвет текста, потому что вы пытаетесь изменить текстовое содержимое ".price"
ваш код будет выглядеть так:
<div class = "product-price-wrapp">
<div class = "price"><span>Product Price</span> <span class = "price_tag">90,00 €</span></div>
...
</div>
затем используйте шаблон регулярного выражения /(\d+)([.,]0+)/, чтобы удалить нули.
$('.product-price-wrapp .price .price_tag').each(function(){
var price = $(this).text();
price = price.replace(/(\d+)([.,]0+)/, "$1");
$(this).text(price);
});
для шаблона регулярного выражения он имеет две группы захвата.
$ 1 = (\ d +): получает все одно или несколько чисел. $ 2 = ([.,] 0+): получает все конечные нули с точкой или запятой на его первом символе.
поэтому, когда мы использовали его в коде, мы все заменяли содержимое, которое соответствует шаблону [число (1 или более)] [запятая или точка, за которыми следуют конечные нули], а затем сохраняем только первую группу захвата, которая является числом ( один или больше).
Ваше решение не прошло следующие образцы: €20.02 и 20.02€
Привет, @Cocest, я полагаю, вы использовали мой код javascript, не меняя HTML-код. Я думаю, что это причина того, почему, с вашей стороны, он потерпел неудачу. PS. Он / она использовал мое решение на своем JFiddle, и оно работает. Спасибо!
Привет, @Ivan, ты можешь проверить это JFiddle. Я думаю, вы тоже забыли изменить свой html-код. Спасибо!
Я уже переходил по этой ссылке, суть в том, что если использовать например 92,07 €, не получится.
Отредактируйте свой вопрос, чтобы я опубликовал ответ на вашу проблему