如果我有以下html:
<p>e: 1-800-hello-49</p>
<p>another line</p>
<p>
f: 1-800-hello-49
g: 1-800-hello-49
</p>
我希望能够在行的开头检测到后跟冒号的字符,以便得到以下输出:
<p><span>e:</span> 1-800-hello-49</p>
<p>another line</p>
<p>
<span>f:</span> 1-800-hello-49
<span>g:</span> 1-800-hello-49
</p>
我尝试过使用正则表达式,但我很难抓住正则表达式。
答案 0 :(得分:5)
尝试
$('p').html(function(idx, html){
return html.replace(/\b([a-z]:)/ig, '<span>$1</span>')
})
演示:Fiddle
答案 1 :(得分:2)
var pattern = /^\s*(.:)/gm;
$('p').html(function(i, $html) {
return $html.replace(pattern, '<span>$1</span>');
});
答案 2 :(得分:-2)
你可以试试这个:
$('p').each(function() {
var html = $(this).html();
if(html.charAt(1) == ':')
{
$(this).html( '<span>' + html.charAt(0) + '</span>' + html.substr(2) );
}
});
当然这只适用于jQuery。如果您使用vanilla javascript,请告诉我,以便我可以更新代码。