gpt4 book ai didi

javascript - 模式匹配永远不会终止

转载 作者:行者123 更新时间:2023-12-03 02:44:07 25 4
gpt4 key购买 nike

我有这个用于模式匹配的 JavaScript。当我打开 HTML 文件并运行脚本时,它永远不会结束。该页面将永远加载。 ifelse 内的日志永远不会打印出来。我无法找到问题所在。

var link="https://www.google.co.uk/search?source=hp&ei=EUtVWuX5JpGRkwWW_py4Cg&q=testing+for+schools&oq=testing&gs_l=psy-ab.1.1.0i131k1j0l9.7269.8065.0.9955.7.7.0.0.0.0.175.755.4j3.7.0....0...1.1.64.psy-ab..0.7.754...0i3k1.0.TglIEkPkeIU";
var pattern = "(https:\\/\\/)(.*\\.)*(google.co.uk)(\\/.*)*(\\/)*";

if(link.search(pattern) == 0)
{
console.log("inside if");
console.log("Match");

}
else
{
console.log("inside else");
console.log("Not Match");
}

编辑:我需要一个代表几乎所有以 https 开头的 URL 的正则表达式。唯一可变的是域名,例如google.co.uk。我认为我的正则表达式很完美,但它无法处理这种情况。

编辑2:我需要的模式的逻辑是:(any-sub-domain.)*(domain-name)(/something)* (/)*

EDIT3:

抱歉,之前的编辑现在已更正。这是错误的,因为我没有将其放入代码中。

最佳答案

我建议首先使用URL object,而不是使用正则表达式来解析整个URL。 JavaScript 来提取 URL 的相关部分。然后,您可以使用 if 检查 URL 的属性,例如 hostnameprotocol:

var link = "https://www.google.co.uk/search?source=hp&ei=EUtVWuX5JpGRkwWW_py4Cg&q=testing+for+schools&oq=testing&gs_l=psy-ab.1.1.0i131k1j0l9.7269.8065.0.9955.7.7.0.0.0.0.175.755.4j3.7.0....0...1.1.64.psy-ab..0.7.754...0i3k1.0.TglIEkPkeIU";
var urlObject = new URL(link);

console.log(urlObject.hostname); // "www.google.co.uk"
console.log(urlObject.protocol); // "https:"

if (urlObject.protocol === "https:") {
if (urlObject.hostname.endsWith('google.co.uk')) {
console.log("this page is on Google UK");
} else {
console.log("this page is on some other HTTPS web site");
}
} else {
console.log("this page is not secured by HTTPS");
}

关于javascript - 模式匹配永远不会终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48178152/

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