正则表达式 带掩码的有效 IP 地址

Regex Valid IP adresse with mask

我的正则表达式有问题我有这个

<asp:TextBox CssClass="form-control" pattern="\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]?\/(3[0-2]|[0-2][0-9]|[0-9]))\b" placeholder="Adresse IP" ID="Ip_address" runat="server" />

这是我的正则表达式

\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]?\/(3[0-2]|[0-2][0-9]|[0-9]))\b

例如,当 IP 地址低于 200.200.200.200 时,它会强制用户添加掩码 /1,但当它等于或高于它时,它不起作用

我实际拥有的

1.1.1.1 -> 强制 /something 所以它工作

199.199.199.199 -> 强制 /something 所以它工作

200.200.200.200 -> 不强制 /something 所以它不起作用

250.250.250.250 -> 不强制 /something 所以它不起作用

您需要确保将正则表达式的这些部分正确分组。您可以使用

^(?: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]?)){3}\/(?:3[0-2]|[0-2]?[0-9])$

regex demo详情:

  • ^ - 字符串开头
  • (?: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]?)){3} - 三个 . 和一个八位字节模式
  • \/ - 一个 / 字符
  • (?:3[0-2]|[0-2]?[0-9]) - 3 然后是 012,或可选的 012 后跟任何一位数字。
  • $ - 字符串结尾。