-1

这是从验证器 npm 模块中抓取的 URL 验证器。我是正则表达式的新手,有人介意帮我解码吗?也许提到 url 会匹配还是不匹配?

(/^(?!mailto:)(?:(?:https?|ftp):\/\/)?(?:\S+(?::\S*)?@)?(?:(?:(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))|localhost)(?::\d{2,5})?(?:\/[^\s]*)?$/i)
4

3 回答 3

1

这是一个 URL 验证器,旨在捕获尽可能多的文档化 url(和 IP 地址)标准。

我建议将其添加到regex101.com以了解它并测试各种匹配项。

这是一个供您使用的示例——只需更改测试字符串中的 url 即可查看结果。http://regex101.com/r/jQ1lZ5

它将匹配的一些示例:

有些不匹配:

  • www..google.com
  • http://www.google.com
  • 12.20.140.256(不是有效的 IP 地址!)
  • 本地主机
于 2013-11-27T17:28:15.193 回答
0

您当然必须阅读有关正则表达式的信息。无论如何,这里有一些提示(非详尽):

^ : out of a class it matches the beginning of a string
^ : in a class it makes your class a negation class
$ : matches the end of a string
() : creates group which could be reusable, quantifiable, etc.
? : tells the last character or group can be present once or not present
+ : tells the last character or group is present at least once
* : tells the last character or group can be present once or more or not present
\ : escape the following char. Usefull is you have to match a character which is also a metacharacter 
| : is for alternative 
{x, y} : allow you to quantify more precisely than *, ? or +
[] : allow you to create class. [abc] is equivalent to a|b|c
? : after a + or * make it non greedy. By default quantifier are greedy (match the langest string possible)
于 2013-11-27T17:35:23.173 回答
-1

在计算中,正则表达式(缩写为正则表达式或正则表达式)是形成搜索模式的字符序列,主要用于与字符串的模式匹配,或字符串匹配,即“查找和替换”之类的操作。这个概念出现在 1950 年代,当时美国数学家 Stephen Kleene 将正则语言的描述形式化,并与 Unix 文本处理实用程序 ed(一种编辑器)和 grep(全局正则表达式打印)(一种过滤器)共同使用。

http://en.wikipedia.org/wiki/Regular_expression

于 2013-11-27T17:21:03.160 回答