如果我通过 window.location.href
获取 javascript 中的 url,如何根据刚刚获取的 url 字符串检查我是否位于根目录之外的其他位置。使用正则表达式。
如果 url 字符串是“https://stackoverflow.com ”并且我按该字符串分割(协议(protocol)+域+tld),我希望正则表达式匹配:
- 没什么,“”
- 空格“/\s+”
- 正斜杠“/”
- Index.php“/index.php”
但不是“/questions”、“/questions/ask”或index.php或网站根目录以外的目录中的任何文件,例如“questions/ask/index.php”
最佳答案
此正则表达式将满足您的要求。
^(|\/(?:index\.php)?|\s+)$
^$
是需要完整字符串匹配的 anchor 。 (^
开头,$
结尾)
()
是分组
|
分隔有效的可能匹配。 ?:
是非捕获组(实际上两个组都可以是非捕获组)。
我们通过使用 index.php
optional 简化了更改(尾随的 ?
使该组成为可选)。\s+
至少有一个空格。
且前导 |
不允许出现任何内容。
也可以写成:
^(?:|\/|\/index\.php|\s+|)$
函数式 JS 用法:
var url = '',
regex = /^(?:|\/|\/index\.php|\s+|)$/;
if(url.match(regex)) {
console.log('TRUE');
} else{
console.log('FALSE');
}
关于javascript - 正则表达式检查它是否是 url 的根目录, "", "/", "/index.php",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46428874/