有人试图删除货币中,
或.
之后的尾随零,但仍保留货币符号。例如,€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。拉莫斯@Ivan
答案 0 :(得分:0)
您可以使用正则表达式来检测价格是否包含尾随逗号:,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>
答案 1 :(得分:-1)
尝试此解决方案。它更加灵活,可以以任何价格使用。
var c = '90,00 €'; //assign currency (value)
c = /[.,]0*[1-9]+/.test(c) ? c : c.replace(/[.,]0+/, '');
// use the currency here
答案 2 :(得分:-1)
如果您要保留文本的颜色,则需要添加另一个容器作为价格本身,因为您正试图更改“ .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个或更多)] [逗号或点后跟零结尾]相匹配的内容,然后仅保留第一个捕获组,即数字(一个或多个)。