JS正则表达式仅排除http-必须包含https

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

我需要使用Javascript来验证URL输入,其中除不安全的http协议以外的所有URL都是有效的。

有效URL的示例:

https://example.com/
https://example.com/path
application://example.com/path
application://example

无效网址示例:

http:\\example.com

我已经尝试过否定的前瞻,但它不起作用:

^(?!http[s]{0}).*:\/\/.*$

如何编写正则表达式,它将仅排除http协议(必须包含其他协议,例如https)?

regex regex-negation
2个回答
2
投票

您可以这样使用它:

^(?!http:)[^:]+:\/\/.+$

(?!http:)为负前瞻,如果字符串以http:开头,则匹配失败,从而使http://... URL的匹配失败。

但是请注意,此正则表达式不会执行复杂的URL验证,它只是避免了http: URL /的匹配失败>


0
投票

您可以使用URL api并将protocol属性与http:匹配

© www.soinside.com 2019 - 2024. All rights reserved.