使用正则表达式对 URL 进行 Trix 验证

Trix validation of URL using regex

我正在尝试更改验证模式以接受这些开始

https://
http://
https://www.
http://www. 
www.

这是我现在拥有的:

inputElement.pattern = '^(https:?//|http:?//|http:?//www|https:?//www|www).+$';

它接受错误的情况,例如:

wwwsa.se
http://ww.

使用 https://github.com/basecamp/trix/issues/624

达到这一点

您可能需要 ^(http(s)?://)|(www\.)

你可以试试这个

^(?:(?:(?:https?:\/\/)?w{3})(?:[.].*|)|(?:https?:?\/\/(?!w{1,2}\.).*))$

Regex Demo

const regex = /^(?:(?:(?:https?:\/\/)?w{3})(?:[.].*|)|(?:https?:?\/\/(?!w{1,2}\.).*))$/i;
const arr = ['https://','http://','https://www.','http://www.','www.','wwwsa.se','http://ww.','http://www.','ww.','www.','www//','www.g', 'http://wix']

arr.forEach(str => {
  console.log(str, '\t\t' ,regex.test(str))
})