0

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

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

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

  • 文件:

    • .od*。(* 是通配符)
    • 开发华。
    • .sq*。(* 是通配符)
    • .hbox。

匹配 URL 示例:

  • 文件://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

示例不匹配 URL:

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

不知道如何解决这个问题?

谢谢!

4

2 回答 2

1

对于您的文件匹配,您可以简单地使用

document.location.protocol == 'file:'

你正在寻找的表达是

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

请记住,此表达式也将匹配 www.od.mydomain.comoddmydomain.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)\./)
于 2013-10-17T14:04:42.730 回答
0
if (currHost.match(/(alpha|beta|test|dev|load|local|file:|dev-wa|od\*|hbox)?\./))

像上面一样添加?还是你的意思是别的?我在 asterix 中添加了斜杠。在末尾添加了一个问号以使其不贪婪

于 2013-10-14T18:28:16.457 回答