我正在尝试验证用户可以在其中输入多个 DNS 条目的表单字段。我目前有用于验证单个条目的 IP 地址的正则表达式,但如果用户可以使用“,”作为分隔符添加多个 DNS 条目,则不会。
示例(想要验证两个条目):
192.168.1.1、198.168.1.2
正则表达式: /^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3 }(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/
最佳答案
真的不太确定这是一个好主意,因为它很难读,但这应该可以完成工作:
^(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5]))(,\s*(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])))*$
https://regex101.com/r/0uwu2w/1
正如其他人所指出的,对字符串进行拆分并匹配单独的 IP 地址可能是一个更好的主意。
更进一步,即使匹配单个 IP,也可以依次使用拆分并检查每个组成部分是否是 0-255 范围内的数字。
关于javascript - 用于多个 DNS 服务器的 JS 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42462311/