我有一个网站,其中包含以下三种文字样式,以便进行价格优化:
<span class="xyz">
Below 20 (30)
</span>
<span class="xyz">
39 to 45.99 (130)
</span>
<span class="xyz">
74 and Above (216)
</span>
括号中的数字是与价格匹配的商品数量。在第一个跨度,价格是20.在第二个,价格是39和45.99。在第三个跨度,价格是74。
我正在寻找的是可以将美元符号附加到价格而不是数量的JS,以便最终结果是:
<span class="xyz">
Below $20 (30)
</span>
<span class="xyz">
$39 to $45.99 (130)
</span>
<span class="xyz">
$74 and Above (216)
</span>
我找到了Prepend Character to String in jQuery with Regular Expression,但它似乎并没有完全符合我的要求,并且jsfiddle链接不适用于上述文本。
非常感谢任何帮助。我无法直接更改php代码,但我可以运行JS。
曼索尔
答案 0 :(得分:1)
您可以尝试像
这样的正则表达式
$('.xyz').text(function(i,text){
return text.replace(/(\d+(\.\d+)?)(?=\s)/g, function(a, b){
return '$' + b
})
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<span class="xyz">
Below 20 (30)
</span>
<span class="xyz">
39 to 45.99 (130)
</span>
<span class="xyz">
74 and Above (216)
</span>
&#13;
答案 1 :(得分:0)
(\d+\.?\d*?)(?=\s+)(?=[^><]*<\/span>([^><]*<span>[^><]*<\/span>)*[^<>]*)
试试这个。如果它们在span
级别,这将替换它们。参见演示。