我正在搜索正则表达式,用于检查相对URL是否有效。
例如:
/ somesite =>有效
http://WebReference.com/experts/ =>无效。 (绝对值)
../ experts / =>有效
答案 0 :(得分:1)
根据您的需要,您只需检查路径的开头
所以这个/^(\.\.\/|\.\/|\/)/
可以胜任。
它只允许使用/
,./
和../
答案 1 :(得分:0)
有一个相关问题:
Regex check if given string is relative URL
基于此,你最终可以使用:
<div class="btn-group" data-toggle="buttons">
<input id="option-1" type="radio" name="test-toggle" checked="checked">
<label for="option-1" class="btn btn-default-toggle-ghost active">
Option 1
</label>
<input id="option-2" type="radio" name="test-toggle">
<label for="option-2" class="btn btn-default-toggle-ghost active">
Option 2
</label>
</div>
此正则表达式还有一个在线演示,您可以轻松尝试:
答案 2 :(得分:0)
我会评论我的结果:
你想要以'/'或'../'开头的相对路径,所以我假设你也想接受'./':
(\.?){2}\/
文件夹名称通常是带下划线的字母数字[a-zA-Z0-9_],但减号通常也很好:
[a-zA-Z0-9_\-]
Foldernames至少有一个字符但不限:
[a-zA-Z0-9_\-]+
如果您想将它们限制为30个字符:
[a-zA-Z0-9_\-]([a-zA-Z0-9_\-]?){29}
至少有一个Foldername,但上面的任何数字:
(\/[a-zA-Z0-9_\-]+)+
可以像角色一样受限制。
结果没有名称长度或文件夹数量的限制:
/^(\.?){2}(\/[a-zA-Z0-9_\-]+)+$/
或者,如果你还想接受以“/ root / manuals /”之类的斜杠结尾的路径,你需要附加/?
/^(\.?){2}(\/[a-zA-Z0-9_\-]+)+\/?$/
结尾的'^'和'$'阻止表达式匹配
之类的东西XXXXXXXXXXXXX/root/directory_1/YYYYYYYYYYYYY