我需要使用 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'))