比如:
0<input value=12>3<input value='45'>6<input value="78">9
替换成0123456789而0<input name=12>3<input value='45'>6<input value="78">9
替换成03456789
这样写不对
<input[\w\W]*?value=[""']?([\w\W]*?)[""']?[\w\W]*?>

解决方案 »

  1.   


    var str1 = "0 <input value=12>3 <input value='45'>6 <input value='78'>9";
    var str = "0 <input name=12>3 <input value='45'>6 <input value='78'>9";
    alert(str.replace(/name=\d+/g,'').replace(/[^0-9]/g,''))
    alert(str1.replace(/name=\d+/g,'').replace(/[^0-9]/g,''))
      

  2.   

    多谢楼上的兄弟,我只是随便举了下例子,实际上的input,可能性很多
    比如:
    0 <input name=ab12>3 <input name="bc45" value='4s5'>6 <input type="text" value='78' name="dddd">9诸如等等,我只提取出value来
      

  3.   


    <textarea id="x">
    0 <input value=js>3 <input name="bc45" value='4s5'>6 <input type="text" value="78" name="dddd">9 
    </textarea><script type="text/javascript">var str = document.getElementById('x').value;
    var r = /(<input\b.*?value=)(["']?)(.*?)(\2?(?:\/?>|\s.*?>))/ig;
    var ret = [];//只写一下抓出来input中的value
    //貌似你的替换规则看不太明白,不写鸟~`````
    str.replace(r,function(a,b,c,d,e){if(d){ret.push(d);}});
    alert(ret);</script>
      

  4.   

    = =,好象长点.
    <textarea>
    0 <input name=ab12>3 <input name="bc45" value='4s5'>6 <input type="text" value='78' name="dddd">9 <input type="text" value=3 name="dddd">4 <input type="text" value=5 name="dddd" onmousedown="this.value=7">6
    </textarea>
    <script type="text/javascript">
    window.onload = function () {
    var p = /<input\b(?:"[^"]*"|'[^']*'|[^"'>])*?(?:\bvalue\s*=(?:\s*"([^"]*)"|\s*'([^']*)'|([^"'> ]+))(?:"[^"]*"|'[^']*'|[^"'>]+)*)?>/ig;
    //var p = /\s*<input\b(?:"[^"]*"|'[^']*'|[^"'>])*?(?:\bvalue\s*=(?:\s*"([^"]*)"|\s*'([^']*)'|([^"'> ]+))(?:"[^"]*"|'[^']*'|[^"'>]+)*)?>\s*/ig;
    alert(document.getElementsByTagName('textarea')[0].value.replace(p, '$1$2$3'));
    }
    </script>