获取字符串,提取id和包装文本

时间:2012-05-07 15:39:56

标签: javascript jquery replace

如果我有以下HTML:

<p> some random text :) video?v=E_LkHrerwe4lnhhnrCbo another video?v=567ghf564_-56e</p>
<p> some2 random2 text2 video?v=rt5y5yvbn5y</p>

使用jQuery如何在video?v=之后获取8个字符的ID,因此对于第一个ID,E_LkHrer,然后用<span id="'+8charID+'"></span>包裹字符串?因此,对于上面的HTML,它将返回

<p> some random text :) <span id="E_LkHrer">video?v=E_LkHrerwe4lnhhnrCbo</span> another <span id="567ghf56">video?v=567ghf564_-56e</span></p>​
<p> some2 random2 text2 <span id="rt5y5yvb">video?v=rt5y5yvbn5y</span> </p>​

ATM我有this,但我不知道从哪里去 我知道jQuery与我需要的东西没什么关系我只是测试我是否可以尝试从一个video?v=

中删除一个id

$("p").each(function() {
  var content = $(this).html();
  var getwatch = content.split('video?v=');
  $(this).after(getwatch[1].substring(0, 8));
});​
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p> some random text :) video?v=E_LkHrerwe4lnhhnrCbo another video?v=567ghf564_-56e</p>
<p> some2 random2 text2 video?v=rt5y5yvbn5y</p>

1 个答案:

答案 0 :(得分:2)

$('p').html(function (_, str) {
  return str.replace(/video\?v=([^\s<]+)/g, function ($0, $1) {
    return ['<span id="', $1.substr(0, 8), '">', $0, '</span>'].join('');
  });
});​

http://jsfiddle.net/HcAyd/1/