Actionscript:检查字符串是否包含域或子域

时间:2015-01-19 16:38:05

标签: regex actionscript-3 subdomain match

我需要知道字符串是否包含特定域

我有一个像这样的数组

private var validDomain:Array  =  new Array(
  "http://*.site1.com",
  "http://*.site2.com",
  "http://*.site3.com",
  );

private var isValidDomain:Boolean =  false; 
private var URL:string =  "http://mysub.site2.com";  

现在我会检查我的字符串是否有效,所以我想是这样的:

for each (var domain_ in validDomain){
      if(SOMEREGEX){
      isValidDomain=true;
      }
  }

我在SOMEREGEX中放了什么?!

1 个答案:

答案 0 :(得分:0)

问题在于您使用两种不同的逻辑。

第一个是基于通配符的字符串,带有*等通配符;您必须以正则表达式模式翻译此基于通配符的模式。

要做到这一点,一个快速而肮脏的解决方案是做一些字符串替换,如:

  • *

  • 替换模式中的.*通配符
  • 转义基于通配符的模式中对正则表达式“特殊”的字符(例如,将.替换为\.

考虑到这一逻辑,您将转换基于通配符的模式,如:

http://*.mydomain.com

进入正则表达式模式:

http:\/\/.*\.mydomain\.com

可以用来测试你的字符串。

编辑.*是测试子域名的一种非常粗糙的方法,要做得很干净,你应该使用正确的模式,如此线程中的模式:Regexp for subdomain