使用jquery,匹配单个字符后跟冒号并在span标记中换行

时间:2013-09-10 09:22:11

标签: javascript jquery html regex

如果我有以下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>

我尝试过使用正则表达式,但我很难抓住正则表达式。

3 个答案:

答案 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>');
});

jsFiddle Demo

答案 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,请告诉我,以便我可以更新代码。

相关问题