如何使用jQuery用html替换字符串?

时间:2017-04-28 16:45:59

标签: jquery regex string parsing

我无法弄清楚如何将元素添加到HTML字符串中。我尝试使用.nextUntil(),然后我意识到我不能用那个,只有元素来定位特定的字符。然后我研究了解析和正则表达式,但我仍然没有抓住如何实现以下内容。我有一个变量&item 39选项'需要转换为html。

原始

itemOptions = '*First Item|2000*Second Item|1500*Third Item|700';

我需要的是什么:

itemOptions = '<li>First Item - <span>$2000</span></li><li>Second Item - <span>$1500</span></li><li>Third Item - <span>$700</span></li>';
$('ul.item-options').html(itemOptions );

我很欣赏你如何转换它的解释。谢谢!

1 个答案:

答案 0 :(得分:2)

使用像

这样的正则表达式
/\*([^|*]+)\|([^|*]+)(?=\*|$)/g

并替换为

<li>$1<span>$2</span></li>

应该这样做。

它匹配最初的星号,将所有内容捕获到|组1.匹配|并将其余部分捕获到第2组,直到另一个星号,或使用正数捕获行尾先行。

&#13;
&#13;
itemOptions = '*First Item|2000*Second Item|1500*Third Item|700';

itemOptions = itemOptions.replace(/\*([^|*]+)\|([^|*]+)(?=\*|$)/g, function(a,b,c) {
  return '<li>' + b + ' <span style="color:red">' + c + '</span></li>';
});

document.write(itemOptions);
&#13;
&#13;
&#13;