HTML5 IP 地址模式 - 如何修改模式以忽略“_”(下划线)字符
HTML5 pattern for IP address - how to modify pattern to ignore the "_" (underscore) character
我发现了以下用于验证 IP 地址语法的模式:
pattern="((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}$"
但我需要修改它以忽略所有地方的 _
个字符。那是因为我使用了一个输入掩码(它在散焦字段后删除了 _
但 bootstrap 验证器插件有时没有捕捉到它)。
那么如何修改该正则表达式以忽略 _
个字符?
应该有效的示例字符串:
192.168.88.1__
192.168.88_.200
192.16_.88_.2__
192.168.88.2
为了匹配可选字符(出现 0 次或多次),您需要一个 *
量词。因此,要匹配数字后带有 _
的 IP 地址,您可以在每个数字后添加 _*
:
((^|\.)((25[0-5]_*)|(2[0-4]\d_*)|(1\d\d_*)|([1-9]?\d_*))){4}_*$
见demo
不过,我认为您可以安全地删除锚点,因为 HTML5 pattern 属性默认是锚定的。您还可以更改正则表达式以更智能地匹配 IP(前面不允许有点):
(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)_*(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)_*){3}
我发现了以下用于验证 IP 地址语法的模式:
pattern="((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}$"
但我需要修改它以忽略所有地方的 _
个字符。那是因为我使用了一个输入掩码(它在散焦字段后删除了 _
但 bootstrap 验证器插件有时没有捕捉到它)。
那么如何修改该正则表达式以忽略 _
个字符?
应该有效的示例字符串:
192.168.88.1__
192.168.88_.200
192.16_.88_.2__
192.168.88.2
为了匹配可选字符(出现 0 次或多次),您需要一个 *
量词。因此,要匹配数字后带有 _
的 IP 地址,您可以在每个数字后添加 _*
:
((^|\.)((25[0-5]_*)|(2[0-4]\d_*)|(1\d\d_*)|([1-9]?\d_*))){4}_*$
见demo
不过,我认为您可以安全地删除锚点,因为 HTML5 pattern 属性默认是锚定的。您还可以更改正则表达式以更智能地匹配 IP(前面不允许有点):
(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)_*(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)_*){3}