我在使用正则表达式提取<h1></h1>
标记时遇到问题。
我有变量:
var t = '<h1>Some cool text in this tag</h1>';
我希望这样做:
<h1><span>Some</span> <span>cool</span> <span>text</span> <span>in</span> <span>this</span> <span>tag</span></h1>
我的代码如下所示:
var t = '<h1>Some cool text in this tag</h1>';
var reg = /<(.|\n)*?>/ig; // this is regex for HTML tags
var temp = '';
var s = $(t).text();
temp = '<span>'+ s.split(' ').join('</span> <span>')+'</span>';
$('#output').append(temp);
它应该适用于所有可能的HTML标记,即使var具有如下字符串:
var t = '<strong>Strong text</strong> with some <em>emphasis</em>';
答案 0 :(得分:0)
尝试使用正则表达式查找匹配的html标记很粗糙,因为它们可能是嵌套的。在任何情况下,这样的事情会做你需要的吗?或者至少帮助你找到正确的方向?
$('#target').children().each(function(){
$(this).wrap('<span></span>');
t = $(this).text();
t = '<span>'+ t.split(' ').join('</span> <span>')+'</span>';
$(this).html(t);
})
答案 1 :(得分:-1)
试试这个
var t = '<h1>Some cool text in this tag</h1>';
var text = t.split(' ');
for( var i = 1, len = text.length; i < len; i=i+2 ) {
text[i] = '<span>' + text[i] + '</span>';
}
alert(text.join(' '))