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
您可以使用它来测试字符串
编辑:.*是一种非常粗糙的子域测试方法,要干净利落地做事情,您应该使用一种正确的模式,如以下线程中的模式:可能重复的