gpt4 book ai didi

regex - IP地址子网的正则表达式

转载 作者:行者123 更新时间:2023-12-05 05:24:05 25 4
gpt4 key购买 nike

我希望在我的最后一个八位字节中只有 0|64|128|192(对于带有/26 掩码的子网)。用于验证 ip 地址的第一个代码工作正常。但我无法获得最后一个八位字节工作的验证。不确定我在这里做错了什么

我正在寻找 172.17.251.64 应该被允许 172.17.251.200 不应该被允许

<input name="ipAddress" title="Input data should be in IP Address Format" type="text" pattern="^(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))$">

<input name="subnet" title="Input data should be in Subnet Format" type="text" pattern="^(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(0|64|128|192))$">

最佳答案

要了解您哪里错了,请访问 regex101.com,并使用具有 PCRE 风格的 /x 选项,并尝试将表达式分成几行以检查正则表达式的结构。参见 this demo :

^
(\d|[1-9]\d|1\d\d|2
([0-4]\d|5[0-5])
)
\.
(\d|[1-9]\d|1\d\d|2
([0-4]\d|5[0-5])
)
\.
(\d|[1-9]\d|1\d\d|2
([0-4]\d|5[0-5])
)
\.
(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5])) # THIS SHOULD BE REPLACED!!!
$

所以,使用

^(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(‌​\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(0|64|128|192)$ 
^^^^^^^^^^^^^^

参见 regex demo

请注意,您可以从正则表达式中删除 ^$,因为 pattern 属性值默认锚定(它包含在 ^(?:)$).

关于regex - IP地址子网的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35600888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com