使用<strong>使用jQuery </strong>换行包含美元符号的子字符串

时间:2013-07-26 18:59:47

标签: jquery

我有一个来自db的HTMl, <p>$10 remaining of $100 budget</p>

我想用10 <strong>标签打包,如下所示。

美元金额可能会变为2位数以上,我想把全部金额换掉。

我正在寻求使用jQuery / JS的结果是......

<p><strong>$10<strong> remaining of $100 budget</p>

谢谢。

4 个答案:

答案 0 :(得分:4)

你可以这样做:

$('p').html(function(_, old){
     return old.replace(/(\$\d+) /, '<strong>$1</strong> ');
})

小提琴:http://jsfiddle.net/gEfzs/

答案 1 :(得分:2)

您可以使用字符串操作完成所有操作。 DEMO 其他人可以用Regex更有效地做到这一点,但是嘿,这很好。

var priceStr = "<p>$10 remaining of $100 budget</p>";
// remove <p>
priceStr     = priceStr.substr("<p>".length, priceStr.length);
// convert to array and get `$10` as first element
var priceStrArr  = priceStr.split(' ');
// replace first element in array `$10` with wrapping string
priceStr = priceStr.replace(priceStrArr[0], '<p><strong>'+priceStrArr[0]+'</strong>');
// output
$('#thingy').html(priceStr);

答案 2 :(得分:0)

你可以使用j replace函数

这样的正则表达式\$[0-9]{2}\b

答案 3 :(得分:0)

试试这个:

HTML

<p>$10 remaining of $100 budget</p>

JS

var html = $('p').html();
var index = html.indexOf('$');
var parts, part1, part2;
if (index != -1) {
    part1 = html.substring(0, index);
    part2 = html.substring(index);
    parts = part2.split(' ');
    parts[0] = '<strong>' + parts[0] + '</strong>';
    html = part1 + parts.join(' ');
    $('p').html(html);
}

<强> jsFiddle