【发布时间】:2012-07-13 11:47:04
【问题描述】:
我正在尝试验证没有域的 url,只是路径和参数。
我使用的正则表达式完成了大部分工作,但它有一些我不知道如何防止的错误(我对正则表达式非常陌生):
/^(\/([\w#!:.?+=&%@!\-\/])+)$/i
下一个示例已正确验证
/asd.jsp -> true
/asd/asd.jsp -> true
/asd/asd.jsp?bar=baz&inga=42&quux -> true
/asd/asd.jsp?bar=ba z&inga=42&quux -> false
但是这个不是正确的 ulrs,它们也给了我真实的感觉:
/asd/asd./jsp -> true :(
/asd/asd.jsp/ -> true :(
/asd./asd.jsp -> true :(
/asd///asd.jsp -> true :(
/asd/asd.jsp&bar=baz?inga=42?quux -> true :(
您是否建议使用函数而不是正则表达式?
非常感谢!
【问题讨论】:
-
看看this question。只需删除域的正则表达式(搜索第三个点)。
-
/asd/asd.jsp/是一个有效的网址