JavaScript匹配域和部分

时间:2015-07-09 16:19:54

标签: javascript

var url = 'http://sub.domain2.net/contact/';

if (['https://sub.domain1.com/', 'http://sub.domain2.net/'].indexOf(url) > -1) {
    console.log('match');
} else {
    console.log('no match');
}

在上面,它检查url是否与我的数组中的任何2匹配。只有我希望它与域名部分匹配。

网址http://sub.domain2.net/contact/应与我的数组中的tld匹配。

2 个答案:

答案 0 :(得分:1)

使用Array.prototype.some

var url = 'http://sub.domain2.net/contact/';

var didMatch = ['https://sub.domain1.com/', 'http://sub.domain2.net/'].some(function(u) {
    return url.indexOf(u) !== -1;
});

if (didMatch) {
    console.log('match');
} else {
    console.log('no match');
}

如果您只想检查数组中网址的开头,请将url.indexOf(u)替换为url.startsWith(u)

如果您想支持< IE9,请使用polyfill

答案 1 :(得分:0)

您正朝着错误的方向接近问题。如果所有顶级域名的长度相同,则可以将url剪切为相同的长度,以便在indexOf中使用。否则,您需要使用循环和startsWith函数来执行此操作。