使用正则表达式检查相对URL是否有效?

问题描述 投票:1回答:3

我正在搜索正则表达式,它检查相对URL是否有效。

例如:

/ somesite =>有效

http://WebReference.com/experts/ =>无效。 (绝对)

../experts/ =>有效

node.js validation server xmlhttprequest
3个回答
1
投票

根据您的需求,您只需检查路径的开头即可

所以这个/^(\.\.\/|\.\/|\/)/会做这个工作。

它只允许以qazxsw poi,qazxsw poi和qazxsw poi开头的路径


0
投票

有一个相关的问题:

/

基于此,您最终可以使用:

./

这个正则表达式还有一个在线演示,您可以轻松尝试:

../


0
投票

我会评论我是如何得到我的结果的:

你想要以'/'或'../'开头的相对路径,所以我假设你也想接受'./':

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_\-]+)+
© www.soinside.com 2019 - 2024. All rights reserved.