有没有办法host:port使用正则表达式和PHP 检查有效的组合?
正则表达式必须确保:
host 是一个有效的IP(包含4个1-3位数字,由3个点分隔,数字范围为1-255):port 是0到65535之间的有效数字有效组合的示例:
95.241.1.5:5423
2.8.5.2:65532
无效组合的示例:
1. 2345 .12.1:5441
15.852.32.455:151896841
65.112.15.32:48 控制
^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9]):(?:6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9])$
Run Code Online (Sandbox Code Playgroud)
应该工作,但它不是很试图匹配数字与正则表达式...
在详细格式中,更具可读性:
^
(?:
(?:
25[0-5]| # 250-255
2[0-4][0-9]| # 200-249
1[0-9][0-9]| # 100-199
[1-9]?[0-9] # 0-99
)
\. # .
){3} # three times, last segment follows (no dot)
(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])
: # :
(?:
6553[0-5]| # 65530-65535
655[0-2][0-9]| # 65500-65529
65[0-4][0-9]{2}| # 65000-65499
6[0-4][0-9]{3}| # 60000-64999
[1-5][0-9]{4}| # 10000-59999
[1-9][0-9]{1,3}| # 10-9999
[0-9] # 0-9
)
$
Run Code Online (Sandbox Code Playgroud)