在JS中添加美元符号以进行网站的价格优化

时间:2014-10-09 04:53:12

标签: javascript jquery regex replace

我有一个网站,其中包含以下三种文字样式,以便进行价格优化:

<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。

曼索尔

2 个答案:

答案 0 :(得分:1)

您可以尝试像

这样的正则表达式

&#13;
&#13;
$('.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;
&#13;
&#13;

答案 1 :(得分:0)

(\d+\.?\d*?)(?=\s+)(?=[^><]*<\/span>([^><]*<span>[^><]*<\/span>)*[^<>]*)

试试这个。如果它们在span级别,这将替换它们。参见演示。

http://regex101.com/r/iM2wF9/12