如果我通过window.location.href
获取javascript中的url,如何根据我刚刚获得的url字符串检查我是否在根目录以外的其他位置。使用正则表达式。
如果url字符串是“https://stackoverflow.com”并且我正在分裂(protocol + domain + tld),我希望正则表达式匹配:
但不是“/ questions”,“/ questions / ask”,或者是index.php或网站根目录以外的任何文件,如“questions / ask / index.php”
答案 0 :(得分:2)
此正则表达式符合您的要求。
^(|\/(?:index\.php)?|\s+)$
^$
是需要完整字符串匹配的锚点。 (^
领先,$
即将结束)
()
是分组,|
分隔有效的可能匹配。 ?:
是非捕获组(实际上两个组都可以是非捕获组)。
我们使用index.php
可选项来简化更改(尾随?
使该组可选)。
\s+
至少有一个空格。
领先|
不允许出现任何内容。
它也可以写成:
^(?:|\/|\/index\.php|\s+|)$
功能JS用法:
var url = '',
regex = /^(?:|\/|\/index\.php|\s+|)$/;
if(url.match(regex)) {
console.log('TRUE');
} else{
console.log('FALSE');
}