首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于多个DNS服务器的JS Regex

用于多个DNS服务器的JS Regex
EN

Stack Overflow用户
提问于 2017-02-25 22:26:08
回答 2查看 237关注 0票数 0

我试图验证一个表单字段,用户可以在其中输入多个DNS条目。我目前拥有验证单个条目的IP地址的正则表达式,但如果用户可以使用",“作为分隔符添加多个DNS条目,则不会。

示例(希望验证两个条目):

192.168.1.1,198.168.1.2

Regex: /^(((010-9{1,2})|(20-4)|(250-5)).){3}((0-10-9{1,2})|(20-4)|(250-5))$/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-25 22:43:07

确实不太确定这是个好主意,因为它很难读懂,但这应该可以完成以下工作:

代码语言:javascript
复制
^(?:(?:[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范围内的一个数字。

票数 1
EN

Stack Overflow用户

发布于 2017-02-25 22:37:23

我建议不要尝试验证整个字符串,而只是在,上拆分字符串并单独验证每个字符串。

这给您留下了一个更简单的正则表达式,代价是增加了一些代码。此外,如果用[0-9]替换,正则表达式中的任何\d都会更简单。

/^((([01]?\d{1,2})|(2[0-4]\d)|(25[0-5]))[.]){3}(([0-1]?\d{1,2})|(2[0-4]\d)|(25[0-5]))$/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42462311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档