<input onclick=aaa(); name=ABC value=文本框值 >上面的html代码。我想 值得替换得到  “文本框值”,引号中的文字。

解决方案 »

  1.   

    最好也最方便就是用DOM或者XML去取值和修改值了
      

  2.   

    type 不写的话,默认就是 type=text 了。这个还用问么
    用dom是不好用的,我的代码很特殊,只能用正则。通俗一点说,我原先的代码  : <input onclick=aaa(); name=ABC value=文本框值 > 
    我想把它变成         : 文本框值
    也就是只保留input的value。
      

  3.   

    <input onclick=aaa(); name=ABC value=文本框值 >
    红色部分是固定的吗? 
      

  4.   

    document.getElementsByName("ABC")[0]
    这种方式真的行不通?
    有什么特殊的?能否透露下?/<input[\s\S]*?value\s*=\s*['"]?([^'"\s>]*)\/?>/img试试这个正则
      

  5.   

    不知道你的格式是否会不会又什么不定因素(?<=value=).*(?=>)
      

  6.   

    我的格式有不定因素,但是input 都有 value 属性。 
      

  7.   

    我也说不好为什么就特殊了, 
    document.getElementsByName("ABC")只能取到 1,3,5 的 input 。很奇怪了。
      

  8.   

    已有一个正则。但有一些bug ,后面的尖括号闭合没有驱除掉。 
    结果是 
    value="ddddddd" >
    value=文本框值 >
    我想要的结果是:
    ddddddd
    文本框值
    =================================================== <textarea id="content" rows="10" cols="100">
      <INPUT type="text" name="cCode" onclick=dddd(); value="ddddddd" >
      <input onclick=aaa(); name=ABC value=文本框值 > 
      </textarea> 
    <script>
    function opt()
    {
    var reg = /(<input(?=[^>]*value=).*?value=(['" ]?[^'"\s]+['" ]))/gi
    var result =str.replace(reg ,"$2");
    alert(result);
    }
    </script>
      

  9.   


    //Try it.
    function opt(str)
    {
    //var reg = /( <input(?=[^>]*value=).*?value=(['" ]?[^'"\s]+['" ]))/gi
    var reg=/<input[^>]+value\s*=\s*("|')([^>]*)\1[^>]*\/>/ig;
    var result =str.replace(reg ,"$2");
    alert(result);

      

  10.   


    <script type="text/javascript">
    <!--
    var str = '<input onclick=aaa(); name=ABC value="文本框值">';
    var reg = /<input[^>]*value=(\'|\")([^\'\"]+)\1[^>]*>/i; alert(str.match(reg)[2])//-->
    </script>
      

  11.   

    更正一下上面的代码
    <html>
    <body><textarea id="content" rows="10" cols="100"> 
      <INPUT type="text" name="cCode" onclick=dddd(); value="ddddddd" > 
      <input onclick=aaa(); name=ABC value=文本框值 > 
      </textarea> 
    <script> 
    function opt() 

    var str = document.getElementById("content").value;
    var reg = /( <input(?=[^>]*value=).*?value=(['" ]?[^'"\s]+['" ]))/gi 
    var result =str.replace(reg ,"$2"); 
    alert(result); 

    </script>
    </body>
    </html>
      

  12.   


    s="<input onclick=aaa(); name=ABC value=文本框值 > "
    alert(s.replace(/<\/?[^>]+value\=(.+)>/gi,"$1"))
      

  13.   

    toury
     
    (理上网来)  的 ,如果是 s="<input onclick=aaa(); name=ABC value='文本框值' > "
    就会输出: '文本框值'  ,带单引号了。双引号也是如此。
      

  14.   

    toury (理上网来)并且这个匹配所有 html标签了。 我只想匹配 input 标签
      

  15.   

    我改了一下,可以只匹配input了。
    s="<input onclick=aaa(); name=ABC value=文本框值 > "
    alert(s.replace(/<input\/?[^>]+value\=(.+)>/gi,"$1"))理上网来,继续问一下,这个正则如何不匹配 <input type="hidden" value="xx" > ,也就是不匹配隐藏域呢?
      

  16.   

    不好意思,没考虑周全。改一下:s='<input onclick=aaa(); name=ABC value="文本框值"> '
    alert(s.replace(/<input\s\/?[^>]+(value\=('|"))(.+)('|")>/gi, '$3'))
      

  17.   

    document.getElementsByName("ABC")[0] 
    这种方式真的行不通?
      

  18.   

    回kingwolf_JavaScript
     
    (浴火凤凰)    果然不通!我的很奇怪,只匹配了1,3,5的input。所以逼不得已才用正则
    18楼 的。多行的就不好用了。
    试试 textarea中的值。   var str = document.getElementById("content").value;<textarea id="content" rows="10" cols="100">
      <INPUT type="text" name="cCode" onclick=dddd(); value="ddddddd" >
      <input onclick=aaa(); name=ABC value=文本框值 >   <select>
    <option value=asdasd></option>
      </select>
      <div id=iiiiiii ></div>
      </textarea>  
      

  19.   

    再求一正则,还有如何删除掉 type=hidden 的input 标签啊?
    加分!
    例子: <input type=hidden  > ,就直接把这个标签删除掉。 变为空
      

  20.   


    /<input\s+(?![^<>]*type=['"]?hidden["']?)[^<>]*(?:type=['"]?text['"]?)?[^<>]*value=["']?([^'"\s]*)['"]?[^<>]*>/ig
    //按照C#的改的 可以试一下 
    /*
    <textarea id="content" rows="10" cols="100"> 
      <INPUT type="text" name="cCode" onclick=dddd(); value="ddddddd" > 
      <input onclick=aaa(); name=ABC value=文本框值 > 
      <input type="hidden" value="xx" >
      <select> 
    <option value=asdasd> </option> 
      </select> 
      <div id=iiiiiii > </div> 
      </textarea> 
    */
    以上只取到ddddddd和文本框值,不知道符合不符合
      

  21.   

    楼上的替反了反了。str  <input type="hidden" value="xx" > 没替掉。
    <INPUT type="text" name="cCode" onclick=dddd(); value="ddddddd" > 这个反而替掉了。
      

  22.   

    你是想单纯的将hidden替换掉还是去text的value阿?替换掉hidden/<input\s+[^<>]*type=['"]?hidden['"]?[^<>]*>/gi
      

  23.   

    感谢楼上几为兄弟的热心帮助,
    用document.getElementsByTagName 的方法解决了!
    详见另一贴:
    http://topic.csdn.net/u/20090819/09/e2fa8df1-3f06-458f-a081-4e84dc66ce42.html