我有一个像这样的字符串数组:['foo', 'bar', 'foo/*/test']
和一个像这样的随机URL:http://www.example.com/foo/bar?test=123/another=one#test
。
URL可能包含查询,也可能不包含哈希道具。
是否存在正则表达式或简单的功能来检查URL,URL中是否包含数组中的任何这些值?
我知道String.prototype.includes
函数,因此我们可以这样做:
let path = location.pathname
,然后是path.includes('foo')
,但我希望包含foo/*/bar/
结构的字符串具有更高的重要性。
例如,如果URL像这样:http://www.example.com/foo/1234/test
,则该函数应仅返回值foo/*/test
,而不是直接在数组内部返回foo
值。
因此,只要我在包含/
之类的数组中有一个字符串,我就想先检查该值或将此值赋予最高优先级。
谢谢!
答案 0 :(得分:0)
由于回复中的格式都弄乱了,因此我必须像这样发布它:
@VincentDecaux完全理解。我的最初想法是这样的:
function checkUrl(url, arr) {
const checkForPaths = arr.filter(val => val.match(/[\/](\w+)/ig));
if (checkForPaths.length) {
return true;
}
const filteredArray = arr.filter(val => url.includes(val));
if (filteredArray.length) {
return true;
}
return false;
}
这可能已经起作用,因为我只希望函数返回true / false才能显示某物。在页面上与此无关。