我有一长串用户自己制作的域名。 chrome扩展程序包含用于获取网址的内容脚本。
抱歉,如果这是重复的,研究网络但无法找到符合我特定需求的任何内容所以基本上,我怎么能识别网站。用户可以输入www.google.com, or google.com or http://google.com or https://www.google.co
使用正则表达式,我的扩展如何绝对确定它们当前在该URL上。 (我不希望https://www.codeup.net/google
被识别为google.com
)
假设列表在变量'listUrl'中,我使用document.URL
获取当前页面的url,那么函数isUrlInList()
会是什么样的?
答案 0 :(得分:1)
就个人而言,我会使用location.hostname,因为它会为您提供当前的域名。当用户添加新域时,我会删除除主机名之外的所有内容,然后我会使用indexOf
来确定该域是否在我的域数组中。
var domains = ['stackoverflow.com', 'google.com', 'yahoo.com'];
var current = location.hostname;
if(domains.indexOf(current) !== -1){
// domain is in list
} else {
// domain is not in list
}
即使您没有删除除主机名之外的所有内容,这也可以.btw。
答案 1 :(得分:0)
你不需要正则表达式。
您需要做的是遍历列表中的所有网址,并使用indexOf针对当前网址检查每个网址。
使用正则表达式的唯一原因是,如果您希望允许用户将正则表达式模式添加到URL列表中。
而且,您可能希望进行不区分大小写的比较,这样您就可以对列表中的所有URL以及检查时的当前URL进行规范化。