【正则表达式】如何判断以下的domain?

EDIT: 支持domain,支持通配符* 比如这些形式

*.baidu.com
*.img.baidu.com
www.baidu.com

该如何是好呢?

阅读 6.6k
4 个回答

var regex = "/^[*|[w]{3}]?.[0-9a-z]+.[0-9a-z]+/"; 这样对么?

还是这样 ^[w]{3}]?.[0-9a-z]+.[0-9a-z]+|^[*]?.[0-9a-z]+.[0-9a-z]+

新手上路,请多包涵

随手写了一个

(\*|www)(\.[0-9a-zA-Z]+)+\.([0-9a-zA-z]{2,3}){1,2}

很多细节可以改,而且这个有回溯地狱问题→ ,→

……没必要用正则吧,直接吧//XXXXXXXX/中间的部分提出来用"."分割就行了额……

新手上路,请多包涵
(\*|www)(\.\w+)+\.([0-9a-zA-Z]+){1,2}  

正如JoeHsu所说,这个正则确实可以写得更细致。通过WiKi,可以知道有些域名很长,超出了3个字符,并且可能会出现中文字符,所以,对其正则修改如上,如果有什么新的需求,可以再讨论,再修改添加。

P.S. @JoeHsu,你的顶级域名部分最后一个字符应该是“Z”,而不是“z”,虽然运行结果似乎是相同的,嘿嘿~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题