var strRegex = "^((https|http|ftp|rtsp|igmp|file|rtspt|rtspu)?://)"  
    + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //ftp的user@  
    + "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184  
    + "|" // 允许IP和DOMAIN(域名) 
    + "([0-9a-z_!~*'()-]+\.)*" // 域名- www.  
    + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名  
    + "[a-z]{2,6})" // first level domain- .com or .museum  
    + "(:[0-9]{1,5})?" // 端口- :80  
    + "((/?)|" // a slash isn't required if there is no file name  
    + "(/[A-Za-z0-9_!~*'().;?:@&=+$,%#-]+)+/?)$";
    
var strRegex1=/^((http|https|ftp):\/\/)?(\w(\:\w)?@)?([0-9a-z_-]+\.)*?([a-z0-9-]+\.[a-z]{2,6}(\.[a-z]{2})?(\:[0-9]{2,6})?)((\/[^?#<>\/\\*":]*)+(\?[^#]*)?(#.*)?)?$/i; 怎么把上面两个表达式整合到一起?
本来是只有第一个正则表达式的,但是第一个对全部是字母的验证也能通过,所以在网上找了第二个正则表达式,两个一起验证,结果正确的url地址也不行了··· 正确的url地址是ftp://11.12.19.73:/1.txt正则表达式

解决方案 »

  1.   


    正确的url地址是ftp://11.12.19.73:/1.txt
    这里多了一个: 
    ftp://11.12.19.73/1.txt 
    如果不想匹配域名,只想匹配ip,就用下面的正则
     <script>
    var strRegex = "^((https|http|ftp|rtsp|igmp|file|rtspt|rtspu)?://)"  
        + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //ftp的user@  
        + "(([0-9]{1,3}\.){3}[0-9]{1,3})" // IP形式的URL- 199.194.52.184  
        + "(:[0-9]{1,5})?" // 端口- :80  
        + "((/?)|" // a slash isn't required if there is no file name  
        + "(/[A-Za-z0-9_!~*'().;?:@&=+$,%#-]+)+/?)$";var str = "ftp://11.12.19.73/1.txt";
    var str1 = "ftp://www.aaa.com/1.txt";
    var reg = new RegExp(strRegex,"g"); 
    alert(reg.test(str));
    alert(reg.test(str1));
    </script>