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



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

有效网址示例:

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

无效网址示例:

http:\example.com

我已经尝试了负面的展望,但它不起作用:

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

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

你可以这样使用它:

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

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

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

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

let urlTester = (url) => {
let urlParsed = new URL(url)
return urlParsed.protocol !== 'http:'
}
console.log(urlTester('https://example.com/'))
console.log(urlTester('https://example.com/path'))
console.log(urlTester('application://example.com/path'))
console.log(urlTester('application://example'))
console.log(urlTester('http://example.com'))

最新更新