使用正则表达式检查相对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是否有效?的主要内容,如果未能解决你的问题,请参考以下文章

检查字符串是不是为有效 URL 的最佳正则表达式是啥?

使用 Javascript 正则表达式检查有效的 url

检查字符串是不是为有效 URL 的 RFC 兼容和工作正则表达式是啥

如何检查url在lua中是不是有效?

如何在 Java 中检查有效的 URL?

检查正则表达式是不是通过正则表达式有效