首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式验证多个域名

正则表达式验证多个域名
EN

Stack Overflow用户
提问于 2012-11-19 19:18:00
回答 2查看 1.8K关注 0票数 0

我正在尝试使用正则表达式(来自Javascript)来验证域名列表。例如,如果用户输入:

代码语言:javascript
复制
facebook.com
stackoverflow.com
apple.com

..。正则表达式应该验证OK。然而,

代码语言:javascript
复制
facebook.com
clearlynotadomainname
apple.com

..。如果验证失败。

我使用这个正则表达式:

^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$

它可以很好地处理第一行文本,但是一旦用户输入第一个CR/LF,表达式就会失败。有没有可能让正则表达式遍历或解析字符串中的所有行?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-19 19:42:36

为什么不简单地将字符串拆分成换行符呢?假设您想忽略空行:

代码语言:javascript
复制
function testString(str) {
  var regex = /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}(\n|$)/
  var split = str.split('\n')

  for(var i = 0; i < split.length; ++i) {
    if(split[i] != ''&& !regex.test(split[i]))
      return false
  }

  return true
}

testString('facebook.com\nstackoverflow.com\napple.com')
=> true
testString('facebook.com\nclearlynotadomainname\napple.com')
=> false
票数 2
EN

Stack Overflow用户

发布于 2019-10-22 20:41:25

要验证、;域(仅限),您可以使用:

代码语言:javascript
复制
^\s*(?:(?:\w+(?:-+\w+)*\.)+[a-z]+)\s*(?:[;,]\s*(?:(?:\w+(?:-+\w+)*\.)+[a-z]+)\s*)*$

在不同的案例中进行了测试。

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

https://stackoverflow.com/questions/13452676

复制
相关文章

相似问题

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