使用正则表达式检查相对URL是否有效?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用正则表达式检查相对URL是否有效?相关的知识,希望对你有一定的参考价值。
我正在搜索正则表达式,它检查相对URL是否有效。
例如:
/ somesite =>有效
http://WebReference.com/experts/ =>无效。 (绝对)
../experts/ =>有效
答案
根据您的需求,您只需检查路径的开头即可
所以这个/^(../|./|/)/
会做这个工作。
它只允许以qazxsw poi,qazxsw poi和qazxsw poi开头的路径
另一答案
有一个相关的问题:
/
基于此,您最终可以使用:
./
这个正则表达式还有一个在线演示,您可以轻松尝试:
../
另一答案
我会评论我是如何得到我的结果的:
你想要以'/'或'../'开头的相对路径,所以我假设你也想接受'./':
Regex check if given string is relative URL
文件夹名称通常是带下划线的字母数字[a-zA-Z0-9_],但减号通常也很好:
^(?!www.|(?:http|ftp)s?://|[A-Za-z]:\|//).*
Foldernames至少有一个字符,但不限于:
https://regex101.com/r/fW9eM4/1
如果您想将它们限制为30个字符:
(.?){2}/
至少有一个Foldername,但上面的任何数字:
[a-zA-Z0-9_-]
可以像角色一样受限制。
结果没有名称长度或文件夹数量的限制:
[a-zA-Z0-9_-]+
或者,如果你还想接受以“/ root / manuals /”之类的斜杠结尾的路径,你需要追加/?
[a-zA-Z0-9_-]([a-zA-Z0-9_-]?){29}
最后的前导'^'和'$'阻止表达式匹配任何类似的东西
(/[a-zA-Z0-9_-]+)+
以上是关于使用正则表达式检查相对URL是否有效?的主要内容,如果未能解决你的问题,请参考以下文章