我有 JavaScript 方式(正则表达式)或模块来检查字符串是否是以下跟随架构http://en.wikipedia.org/wiki/URI_scheme的网址。
注意 - 我在stackoverflow中看到了与此相关的其他问题,但没有一个是令人满意的。 其中大多数都是匹配 http / https / ftp 网址的正则表达式,但 Feed或mailto 的网址或网址与http://en.wikipedia.org/wiki/URI_scheme中指定的任何其他模式有何关系
答案 0 :(得分:0)
以下正则表达式可以满足您的要求。
如果字符串包含RFC 3986中指定的URL,则验证字符串。
支持绝对和相对URL。
^([a-z][a-z0-9+\-.]*:(//([a-z0-9\-._~%!$&'()*+,;=]+@)?([a-z0-9\-._~%]+|\[[a-f0-9:.]+\]|\[v[a-f0-9][a-z0-9\-._~%!$&'()*+,;=:]+\])(:[0-9]+)?(/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?|(/?[a-z0-9\-._~%!$&'()*+,;=:@]+(/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?)?)| ([a-z0-9\-._~%!$&'()*+,;=@]+(/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?|(/[a-z0-9\-._~%!$&'()*+,;=:@]+)+/?))(\?[a-z0-9\-._~%!$&'()*+,;=:@/?]*)?(\#[a-z0-9\-._~%!$&'()*+,;=:@/?]*)?$
我没有提出这个正则表达式,它是由JGSoft
创建的