如何如果h1 text==这个,那么就会发生这种情况



所以我制作了这个IP脚本,当你进入我的网站时,它会显示你的IP。

我想做的是制作一个简单的IP拦截器,我想让它找到包含IP地址的标头的值作为文本,并使其成为if IPHEADER.text or something == "GOODIP" alert("RIGHT IP!"); else window.location = "SOMETHING"。。。我知道那是糟糕的JavaScript,但这只是一个例子。

这是我的当前代码。

<h3 id="testIp"></h3>
<script>
function text(url) {
return fetch(url).then(res => res.text());
}
text('https://www.cloudflare.com/cdn-cgi/trace').then(data => {
let ipRegex = /[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/
let ip = data.match(ipRegex)[0];
document.getElementById('testIp').innerHTML = (ip);
});
-->NEED HELP PAST HERE<---
function validate() {
if (document.getElementById("testIp").innerHTML == "The Right IP") {
alert("RIGHT IP!");
} else {
alert('WRONG IP!');
}
}
</script>

谢谢!

您可以更改以下几项来更正代码。

  1. 转义正则表达式(.(中的点文字
  2. 使用.textContent仅从<h3>中提取原始文本
  3. 比较两个文本字符串时,始终使用三重等于(===(

const
PATTERN_IP_ADDRESS = /[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/,
blockedIpAddress   = '127.0.0.1';
const fetchText = url => fetch(url).then(res => res.text());
const validate = () => {
const testIp = document.getElementById('testIp');
const ipAddress = testIp.textContent;
if (ipAddress === blockedIpAddress) {
console.log('RIGHT IP!');
} else {
console.log('WRONG IP!');
testIp.classList.add('wrong');
}
}
fetchText('https://www.cloudflare.com/cdn-cgi/trace').then(text => {
const [ ip ] = text.match(PATTERN_IP_ADDRESS);
document.getElementById('testIp').innerHTML = ip;
validate();
});
.wrong { color: red; }
<h3 id="testIp"></h3>

相关内容

最新更新