验证+ Url的正则表达式
Validation + Regex for Url
我正在寻找一个接受以下组合url的正则表达式:
规则如下:
1)不应该允许- http或http://或https或https://
2) WWW是可选的
3) url的总长度应为<= 20个字符
Given few possible sample text and its return value:
https://sample.com **- false**
https://www.sample.com **- false**
www.sample.com **- true**
sample123.com **- true**
2323sample.com **- true**
www.sample232.com **- true**
sample.co.uk **- true**
sample **- false**
.com **- false**
123445 **- false**
/^(?!.{21,}|https?:)(?:www'.)?[^.'s@]+'.[^'s]+$/i
参见Regex101
这是一个非常轻的验证!这样做是为了允许非拉丁字符,因为JavaScript regex不支持它们。
解释:
(?!.{21,}|https?:)
这是一个负向前看,拒绝任何长度超过21个字符的字符串,或者任何以http:
或https:
开头的字符串。如果字符串太长,它将立即拒绝并且不遍历正则表达式的其余部分。
(?:www'.)?
-使用非捕获组来匹配www.
,并使用?
量词使其成为最佳组件。
[^.'s@]+
-模式必须至少包含一个符号,该符号不是点或任何空白字符,也不是@符号。最后一个包括防止不太懂技术的用户输入电子邮件而不是URL(他们可能犯的常见错误)。
'.
后面加一个点
[^'s]+
模式以至少一个非空白字符结束。
i
-使用不区分大小写标志来确保不允许像HTTP://
这样的url。虽然将URL转换为小写可能更好,因为这将确保它们被统一显示。
如前所述,这是非常简单的验证。它将阻止用户输入一些大致无效的内容,但不会限制所有无效输入。您可以通过修改模式末尾的文字点字符周围的字符组中允许或不允许的内容来收紧要求。请注意,如果使用[a-z0-9]
形式的字符组,有些有效的url可能会被标记为无效-这将不允许非拉丁字符,例如西里尔字母或中文。JavaScript目前还不支持正则表达式中的UTF字符—如果需要验证UTF字符,则需要像XRegExp这样的库来处理它们。
- 通过正则表达式从字符串中提取Url
- 用于确定URL视频ID的正则表达式
- url正则表达式不适用于javascript中的localhost
- JavaScript 中 URL 的正则表达式模式
- 什么'用这个正则表达式查找URL是错误的
- 修改以下正则表达式,使其在URL末尾包含斜杠
- javascript正则表达式url(url子字符串)
- url的正则表达式有问题
- 使用JavaScript正则表达式从html srcset获取图像url
- 与URL参数匹配的正则表达式
- 为什么正则表达式不能正确验证网站URL
- JavaScript正则表达式,带有URL激活以及微笑符号等
- 将背景图像URL与正则表达式匹配
- JavaScript 正则表达式以匹配 URL
- 通过 JavaScript 和正则表达式将图像 URL 替换为文本 URL
- 正则表达式 url 与本地主机匹配
- 需要进一步扩展此正则表达式 URL/邮件解析器
- javascript正则表达式url替换
- 不是图像扩展名的Javascript正则表达式url
- JS 正则表达式 url 验证