我需要知道字符串是否包含特定域
我有一个像这样的数组
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中放了什么?!
答案 0 :(得分:0)
问题在于您使用两种不同的逻辑。
第一个是基于通配符的字符串,带有*
等通配符;您必须以正则表达式模式翻译此基于通配符的模式。
要做到这一点,一个快速而肮脏的解决方案是做一些字符串替换,如:
用*
.*
通配符
转义基于通配符的模式中对正则表达式“特殊”的字符(例如,将.
替换为\.
考虑到这一逻辑,您将转换基于通配符的模式,如:
http://*.mydomain.com
进入正则表达式模式:
http:\/\/.*\.mydomain\.com
可以用来测试你的字符串。
编辑:.*
是测试子域名的一种非常粗糙的方法,要做得很干净,你应该使用正确的模式,如此线程中的模式:Regexp for subdomain