我正在搜索正则表达式,它检查相对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_\-]+)+