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
我需要知道字符串是否包含特定域
我有一个这样的数组
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