gpt4 book ai didi

Javascript - 字符串搜索,什么可以解决它?

转载 作者:数据小太阳 更新时间:2023-10-29 05:38:25 24 4
gpt4 key购买 nike

问题是,每当我组合两个函数时:

  1. 获取网站所有HTML标签的id
  2. 在数组中搜索“坏词”(又名“Hack”、“Hacker”等...)

代码 1:

var eleng=document.documentElement.getElementsByTagName('*').length -1;
var i=0;
var id=[];
function allids() {

if (i < eleng) {
id.push(document.documentElement.getElementsByTagName('*')[i].id);
if (id[i] == '' || id[i] == ' ') {
i++;
allids();
} else {
console.log(id[i]);
i++;
allids();
}
} else {
console.log("\nDone!");
}

}

代码 2:

var str="HELLO";
var words=['hello','hack','hacker'];
var i=0;
function check() {
if (str.indexOf(words[i]) > -1 || str.indexOf(words[i].charAt(0).toUpperCase()) > -1 || str.indexOf(words[i].toUpperCase()) > -1) {
console.log('Word Found!');
} else {
if (i < words.length) {
i++;
check();
}
}
}

当然,代码 2 将在一个已经尝试过但没有成功的新功能中:(并且它将根据代码 1 的需要进行编辑,我只是​​懒得重新编写脚本来满足代码的需要。我喜欢另存为,但如果不方便请告诉我。

P.S 我正在使用 VANILLA Javascript,所以这意味着没有像 Jquery 这样花哨的东西!

最佳答案

可以在此处找到枚举页面上所有 ID 的快速脚本: How do I enumerate all of the html id's in a document with javascript?

然后我们将它们组合成一个字符串,并测试坏词如下:

var allElements = document.getElementsByTagName("*");
var allIds = [];
for (var i = 0, n = allElements.length; i < n; ++i) {
var el = allElements[i];
if (el.id) {
allIds.push(el.id);
}
}
var str = allIds.join("|").toUpperCase();
var words = ['hello', 'hack', 'hacker'];
check();
function check() {
words.forEach(function (val, id) {
if (str.indexOf(val.toUpperCase()) > -1) {
console.log('Word Found!');
}
});
}
<div id="test"></div>
<div id="banana"></div>
<div id="sdfsdf">
<div id="test"></div>
<div id="test">
<div id="test"></div>
<div id="teHACKst"></div>
</div>
<div id="testHA"></div>
</div>
<div id="CKtest"></div>
<div id="test"></div>
<div id="test"></div>

如果您有任何问题,请随时提出。

关于Javascript - 字符串搜索,什么可以解决它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28763598/

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