【发布时间】:2013-03-18 13:01:15
【问题描述】:
我需要允许来自文本框的 IP/DNS 名称。我正在寻找适用于 IP 的 IP 正则表达式。
现在我使用一个正则表达式:
/\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/
适用于 0-255 范围。但允许无效IP,例如:121.21.05.234.01,它有5个部分。
我需要一个适用于所有场景的正则表达式,如下所示:
10.2.22.1 - true
123.123.123.123 - true
123.123.023.12 - true
12.23.12.0 - true
121.21.05.234.01 - false
请同时提供 DNS 表达式。
【问题讨论】:
-
模式中的
\b匹配单词边界,即a-zA-Z0-9_和任何非这些字符之间的(有效)空格。第 5 个八位字节的点符合“任何不是那些”的条件,这就是您的模式仍然匹配的原因。查看 sp00m 的回答。