1

<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);

var に次のような文字列がある場合でも、可能なすべての HTML タグで動作するはずです。

var t = '<strong>Strong text</strong> with some <em>emphasis</em>';

ここでの「作業」の例: http://codepen.io/halol/pen/DKeIu

4

2 に答える 2

0

一致する html タグを正規表現で見つけようとするのは、入れ子になっている可能性があるため、大雑把です。いずれにせよ、このようなものはあなたが必要とすることをしますか? または、少なくとも正しい方向に進むのに役立ちますか?

$('#target').children().each(function(){
  $(this).wrap('<span></span>');
  t = $(this).text();
  t = '<span>'+ t.split(' ').join('</span> <span>')+'</span>';
  $(this).html(t);
})

ここにフィドルがあります:http://jsfiddle.net/s_Oaten/85W3B/

于 2013-05-20T15:40:08.597 に答える
-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(' '))

http://jsfiddle.net/UReCb/を参照してください

于 2013-05-20T12:29:24.577 に答える