gpt4 book ai didi

javascript - 删除不包含字符的 HTML 元素或

转载 作者:行者123 更新时间:2023-12-02 15:59:57 24 4
gpt4 key购买 nike

我正在处理一些生成的 HTML ,从 Word 文档中,我想提取 包含完全大写字符的段落元素, 不只包含“空元素”或 &nbsp; 。我目前正在使用javascript/jqueryregex确定什么<p class="foo">要提取的元素 - 请参阅代码片段:

var allCaps = /^(?=.{1})(\s*[A-Z,\s]+\s*$)/,
whitespace = /^|s+$/,
cont = $('<div class="container">'),
elems = $('p[class^="foo"]');

elems.each(function(){
var txt = $(this).first().text();
if(allCaps.test(txt)){
if(whitespace.test(txt)){
var copy = cont.clone();
var cln = $(this).clone();
copy.append(cln);
$('body').append(copy);
}
}
});
.container{
padding: 5px;
border: solid 2px steelblue;
background-color: pink;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p class="foo">I INTRODUCTION</p>
<p class="foo"><span></span></p>
<!-- THIS ELEMENT IS BEING COPIED -->
<p class="foo">&nbsp;&nbsp;&nbsp;&nbsp;</p>

您会注意到第三个 foo段落包含在allCaps中和whitespace由于 &nbsp; 进行测试。我有什么办法可以排除它吗?换句话说,是否有正则表达式或其他方法可用于捕获第一个 foo在片段示例中?

最佳答案

jquery .text() 函数已经解码了您的 html 实体,因此您不必担心它。

这里的问题在于您的正则表达式 \s*[A-Z,\s]+\s*,它匹配仅包含空格的字符串。

尝试这样的事情

/^\s*[A-Z][A-Z,\s]*$/

关于javascript - 删除不包含字符的 HTML 元素或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31272484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com