主机名的正则表达式

时间:2013-10-14 18:25:28

标签: javascript regex

我有以下代码(currHost是主机名):

if (currHost.match(/(alpha|beta|test|dev|load|local)\./))

但我需要添加其他条件,例如

  • 文件:

    • .od *。 (*是通配符)
    • DEV-WA。
    • .sq *。 (*是通配符)
    • .hbox。

示例匹配网址:

  • 文件:// C:blahblahblah
  • www.sqc.mydomain.com
  • www.sqa.mydomain.com
  • www.odd.mydomain.com
  • www.odp.mydomain.com
  • www.hbox.mydomain.com
  • dev-wa.mydomain.com

示例NOT MATCHING URLS:

  • www.sqcmydomain.com
  • www.sqamydomain.com
  • www.oddmydomain.com
  • www.odp.mydomain.com
  • www.hboxx.mydomain.com
  • dev-waa.mydomain.com

不确定如何处理这个问题?

谢谢!

2 个答案:

答案 0 :(得分:1)

对于您的文件匹配,您只需使用

即可
document.location.protocol == 'file:'

,你正在寻找的表达是

curHost.match(/(alpha|beta|test|dev|load|local|\.od.*|dev-wa|\.sq.*|\.hbox)\./)

请记住,此表达式也会匹配www.od.mydomain.com oddmydomain.com,因为它也是有效的匹配。如果您不想这样,则需要指定完整表达式(带.com部分)或指定od / sq部分后面的字符数。例如

curHost.match(/(alpha|beta|test|dev|load|local|\.od.{1}|dev-wa|\.sq.{1}|\.hbox)\./)

一封信匹配。

如果您只想在域的开头专门匹配这些字符串,可以使用或不使用www。你可以用

curHost.match(/^(www\.)?(alpha|beta|test|dev|load|local|od.+|dev-wa|sq.+|hbox)\./)

答案 1 :(得分:0)

if (currHost.match(/(alpha|beta|test|dev|load|local|file:|dev-wa|od\*|hbox)?\./))

只需添加如上所示?或者你的意思是其他什么?我在星号中添加了一个斜杠。在最后添加了一个问号以使其不合适