解决方案 »

  1.   

     function getValue(str) {
            var m = str.match(/\d{8}/g);
            return (m && m[0])||''
        }
     
        var strArr = [
            '10208899', //有
            '#10208899', //有
            '#test10208899', //有
            '#ff1020889900',//无
            '#0010208899',//无
            '#1020^10208899a',//有
            '#5566880&10208899f',//有
            'test?#10208899',//有
            '#10208899.'//有
        ];
        for (var i in strArr) {
            var id = getValue(strArr[i]);
            console.log(i, "\t", strArr[i], "\t", id);
        }
     
      

  2.   

    function getValue(str) {
            var m = str.match(/(^|[^\d])\d{8}([^\d]|$)/g);
            return String(m).replace(/[^\d]/g,'')
        }
      
        var strArr = [
            '10208899', //有
            '#10208899', //有
            '#test10208899', //有
            '#ff1020889900',//无
            '#0010208899',//无
            '#1020^10208899a',//有
            '#5566880&10208899f',//有
            'test?#10208899',//有
            '#10208899.'//有
        ];
        for (var i in strArr) {
            var id = getValue(strArr[i]);
            console.log(i, "\t", strArr[i], "\t", id);
        }
      
      

  3.   

    function getValue(str) {
            var m = str.match(/(^|\D)\d{8}($|\D)/g);
      return m?'有':'无'
        }
      
        var strArr = [
            '10208899', //有
            '#10208899', //有
            '#test10208899', //有
            '#ff1020889900',//无
            '#0010208899',//无
            '#1020^10208899a',//有
            '#5566880&10208899f',//有
            'test?#10208899',//有
            '#10208899.'//有
        ];
        for (var i in strArr) {
            var id = getValue(strArr[i]);
            console.log(i, "\t", strArr[i], "\t", id);
        }
      

  4.   


    这个确实可以匹配出来的。貌似javascript不支持正则前瞻 啊