<script type="text/javascript">
    var str = '<a href="http://www.xx.com/test/test.htm">测试</a>';    var pattern = /http:\/\/([^\s]+)"/gi;    var mts = pattern.exec(str);
    if (mts != null)
    {
      alert(mts[1]);
    }\/\/是怎么进行匹配的
下面两个也可以进行区配,但我不是很明白,请解释一下:/^(http[s]{0,1}:\/\/(.)*)/i
(?:https?|ftp):\/\/([^\s"'>]+)/gi

解决方案 »

  1.   

    \/\/ 是匹配 //字符
    /^(http[s]{0,1}:\/\/(.)*)/i 匹配结果包含  https 请求 例如你的href =‘https://www.xxx.com’也可以匹配到
    (?:https?|ftp):\/\/([^\s"'>]+)/gi 匹配结果可以包含 ftp请求 例如你的href =‘ftp://www.xxx.com’也可以匹配到
      

  2.   

    /^(http[s]{0,1}:\/\/(.)*)/i    应该匹配不到你的结果
      

  3.   

    /属于特殊字符,需要转义,\就是用来转义的表示他不是特殊字符,只是/而已。
    有不少元字符在试图对其进行匹配时需要进行特殊的处理。要匹配这些特殊字符,必须首先将这些字符转义,也就是在前面使用一个反斜杠 (\)。下表给出了这些特殊字符及其含义:特殊字符 说明 
    $ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。 
    ( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。 
    * 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。 
    + 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。 
    . 匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \。 
    [  标记一个中括号表达式的开始。要匹配 [,请使用 \[。  
    ? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。 
    \ 将下一个字符标记为或特殊字符、或原义字符、或后向引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。 
    ^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。 
    { 标记限定符表达式的开始。要匹配 {,请使用 \{。 
    | 指明两项之间的一个选择。要匹配 |,请使用 \|。 
      

  4.   


    /^(http[s]{0,1}:\/\/(.)*)/i
    (?:https?|ftp):\/\/([^\s"'>]+)/gi第一个可以这样写:/^(https?:\/\/.*)/i   指匹配http 或https开头的字符串  
    可以看看过客的csdn  blog
      

  5.   

    (?:https?|ftp):\/\/([^\s"'>]+)/gi中的?:是什么意思
      

  6.   

    n=/http:\/\/(.+?)\.([^\/]+).+/i;
    这个能匹配到吗,我看到有一个网页是这样写的,其中的.+?是什么意思,还有最后的.+又是什么意思.