【问题标题】:Actionscript: check if string contains domain or subdomainActionscript:检查字符串是否包含域或子域
【发布时间】:2015-01-19 16:38:05
【问题描述】:

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

我有一个这样的数组

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

【问题讨论】:

标签: regex actionscript-3 subdomain match


【解决方案1】:

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

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

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

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

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

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

http://*.mydomain.com

转化为正则表达式模式:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-11-09
    • 2013-05-18
    • 1970-01-01
    • 2021-12-20
    • 2013-03-04
    • 2014-11-22
    • 2013-02-05
    • 1970-01-01
    • 2021-12-14
    相关资源
    最近更新 更多