我有一个来自db的HTMl,
<p>$10 remaining of $100 budget</p>
我想用10 <strong>
标签打包,如下所示。
美元金额可能会变为2位数以上,我想把全部金额换掉。
我正在寻求使用jQuery / JS的结果是......
<p><strong>$10<strong> remaining of $100 budget</p>
谢谢。
答案 0 :(得分:4)
你可以这样做:
$('p').html(function(_, old){
return old.replace(/(\$\d+) /, '<strong>$1</strong> ');
})
答案 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 强>