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

问题描述 投票:1回答:1

如果我有以下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>
javascript jquery replace
1个回答
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/

© www.soinside.com 2019 - 2024. All rights reserved.