我想将所有大写字母和撇号定位到一个html字符串,并省略所有的html标签。事实上,两个ra子之间的内容瞄准是不可取的,因为它会导致错误。正则表达式jQuery:找到大写字母并忽略html标签
串的例子的问题:
实施例1:
Test Drop Cap with a <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes">Link</a> & a <span style="color:#777">Span</span> and more text<a href="#index-anchor" class="anchor"></a>
实施例2:
Test Drop Cap with a <a href="https://github.com/Scriptura/Scriptura">Link</a> and that's it
预期输出是:
实施例1:
<span class="letter">T</span>est <span class="letter">D</span>rop <span class="letter">C</span>ap with a <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes">Link</a> & a <span style="color:#777"><span class="letter">S</span>pan</span> and more text<a href="#index-anchor" class="anchor"></a>
例2:
<span class="letter">T</span>est <span class="letter">D</span>rop <span class="letter">C</span>ap with a <a href="https://github.com/Scriptura/Scriptura"><span class="letter">L</span>ink</a> and that's it
现在我做到这一点:
(function($){
$.fn.letter = function(){
$(':header, legend, .h1, .h2, .h3, .h4, .h5, .h6, .addletter').each(function(){
var string = $(this);
var newString = string.html().replace(/(<([^>]+)>|[A-Z«»"]|&)/gm, '<span class="letter">$1</span>');
string.html(newString);
});
};
$('.letter').letter();
})(jQuery);
但我的正则表达式是不完美:它也是针对两个标记之间的内容。你能帮我做一个更好的正则表达式吗?谢谢。
@阿维纳什拉吉:谢谢你的澄清请求。我刚刚更新了我的帖子。 –