Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Actionscript:检查字符串是否包含域或子域_Regex_Actionscript 3_Subdomain_Match - Fatal编程技术网

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

Regex Actionscript:检查字符串是否包含域或子域,regex,actionscript-3,subdomain,match,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"; 现

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

我有一个这样的数组

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;
      }
  }

我放了什么在Regex里

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

第一个是基于通配符的字符串,带有类似*的通配符;必须在正则表达式模式中转换此基于通配符的模式

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

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

对基于通配符的模式中正则表达式专用的字符进行转义,例如替换。用\

牢记此逻辑,您将转换基于通配符的模式,如:

http://*.mydomain.com
转换为正则表达式模式:

http:\/\/.*\.mydomain\.com
您可以使用它来测试字符串

编辑:.*是一种非常粗糙的子域测试方法,要干净利落地做事情,您应该使用一种正确的模式,如以下线程中的模式:

可能重复的