RT

解决方案 »

  1.   

    将URI分解为协议(ftp、http 等等)、域地址和页/路径:/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/
      

  2.   

    我的意思基本上和这个相同就是:
    function getUrlParam(name){
        var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
        var r = window.location.search.substr(1).match(reg);
        if (r!=null) {
         return unescape(r[2]); 
        }
     return null;
      }
      
    alert(getUrlParam("Id"));
    如当前的URL是http://localhost/test/Untitled-11.html?Id=12456,那么函数返回12456, 正则表达式"(^|&)"+ name +"=([^&]*)(&|$)"是这个函数的关键函数的返回值r[2],代表了正则表达式中的第二个匹配 ([^&]*)。  为什么"([^&]*)"能匹配12456 呢?根据正则表达式的语法,[^xyz] 负值字符集合。匹配未包含的任意字符。 例如, '[^abc]' 可以匹配 "plain" 中的'p'。 "[^&]*"就是零个或多个除"&"之外任意字符。    但是想把它转换为C#版的啊             
      

  3.   


    string GetUrlParam(string name, string url)
    {
      string reg=@"(?<=(\?|&)"+name+"=).*?(?=($|&))";
      return Regex.Match(url,reg,RegexOptions.IgnoreCase).Groups[0].Value;
    }