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

Actionscript: check if string contains domain or subdomain

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

我有一个这样的数组

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 中放了什么?!

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

第一个是基于通配符的字符串,通配符像*;您必须将此基于通配符的模式转换为正则表达式模式。

要实现这一点,一个快速而肮脏的解决方案是进行一些字符串替换,例如:

  • 将模式中的 * 通配符替换为 .*

  • 将基于通配符的模式中 "special" 的字符转义为正则表达式(例如,将 . 替换为 \.

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

http://*.mydomain.com

转换为正则表达式模式:

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

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

edit.* 是测试子域的一种非常粗略的方法,要巧妙地做事,您应该使用正确的模式,如本帖中的模式: Regexp for subdomain