if (/^[^:]{11}/.test(str)) str = "http://"+ str

解决方案 »

  1.   

    谢谢版主,我的理解:// ^从头开始查找,[^:]不是冒号的字符,{11}查找前11位;
    // 如果不是冒号,找下一位;
    // 如果找到冒号,返回false;
    // 如果前11位都没有冒号,返回true;并执行if语句,字符串前加http://// ^位置
    // [^:]条件
    // {11}范围
      

  2.   

    meizz:
    有个问题,当str小于11位时(str='111')会出错!怎么办呢?
      

  3.   

    str 位长小于11 时, if  的条件判断是 false 不会加 http://   我测试没有问题呀.
      

  4.   

    if (/^[^:]{1,11}/.test(str)) str = "http://"+ str
    如果小于11位也可以这样加http://
    不知道是不是你想要的。呵呵。
      

  5.   

    samboy2002(?) :
    好象不行啊,如果是str='123:'
    会返回http://123:我希望返回123:不变,因为str的前11位已经有冒号了。
      

  6.   

    <script>str='123:'            //返回123:
    str='11:111111111111' //返回11:111111111111
    str=':'               //返回:
    str='aaaaaaaaaaa'     //返回http://aaaaaaaaaaa
    str='123'             //返回http://123
    str=''                //返回http://
    str='222222222222:22' //返回http://222222222222:22str=str+'abcdefghijk' // 首先补充11位字符,以免长度不够出错if(/^[^:]{11}/.test(str)) str = 'http://' + str
    // ^从头开始查找,[^:]不是冒号的字符,{11}查找前11位;
    // 如果不是冒号,找下一位;
    // 如果找到冒号,返回false;
    // 如果前11位都没有冒号,返回true;并执行if语句,字符串前加http://str = str.substr(0,str.length-11) // 最后减掉后11位字符alert(str) //测试</script>没办法自己写,达到目的,但不理想。
      

  7.   

    if(str.indexOf(":")==-1 || str.indexOf(":")>=11)
       str = 'http://' + str//换一种条件判断就OK了