За последние 24 часа нас посетили 17565 программистов и 1724 робота. Сейчас ищут 1597 программистов ...

Помогите пож. с регулярными выражениями JS

Тема в разделе "JavaScript и AJAX", создана пользователем guai, 24 янв 2007.

  1. guai

    guai Активный пользователь

    С нами с:
    18 янв 2007
    Сообщения:
    14
    Симпатии:
    0
    Надо заменить в строке все "a[1]" на "a[2]" в яваскрипте.
    Как это сделать?
    Никак не хочет. По ходу ему скобки не нравятся.
    Со слэшами тоже не прёт.
    Помогите пожалуйста.
     
  2. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    a[1] и a[2] - это элементы массива или это строки?
     
  3. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    $re = 'a\\[1\\]';

    превый слеш для строки php, второй для регулярки
     
  4. Belegnar

    Belegnar Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    299
    Симпатии:
    0
    В одиночных кавычках экранировать спецсимволы нет необходимости. :)
     
  5. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    да и в двойных тоже...
     
  6. guai

    guai Активный пользователь

    С нами с:
    18 янв 2007
    Сообщения:
    14
    Симпатии:
    0
    Пасиба всем, попробую, отпишусь.
    Belegnar, там косяг в том, что скобки - это управлящие символы рег выражний.
    А я чувак, третий день программящий в яваскрипте, и к такому не привык. :)
    ПХП рулит! Но как оказалось, не всегда.
    Мне глобально надо размножить контролы по онКлик'ам.
     
  7. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    проще на js
     
  8. guai

    guai Активный пользователь

    С нами с:
    18 янв 2007
    Сообщения:
    14
    Симпатии:
    0
    Ti, так я на ём и делаю.
    И про него же я спрашивал.
    Тема же Javascript и AJAX какой-то.
    Кстати уже напрограммил, фиг знает как, но заработало. :)
    Тока теперь другой косяк: в Опере не прет.
    Никто не знает чем его отдебагить под оперу.
    Я ща делаю в каком-то офисном дебаггере.
    А там же другая ява машина юзается...
     
  9. guai

    guai Активный пользователь

    С нами с:
    18 янв 2007
    Сообщения:
    14
    Симпатии:
    0
    Я имел в виду:
    Никто не знает, чем его отдебагить под оперу???
     
  10. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    ты может код покажешь?
    а то у мну тоже вот страничка в опере не так показывается..
     
  11. guai

    guai Активный пользователь

    С нами с:
    18 янв 2007
    Сообщения:
    14
    Симпатии:
    0
    Покажу, чё б не показать.
    Тока не уверен, что кому-нить будет полезно. Тем более код пока кривой.

    Код (Text):
    1.  
    2. <html>
    3.   <head>
    4.     <script language='javascript'>
    5.    
    6.       function Small_Del(t)
    7.         {
    8.         var d=t;
    9.         while(d.id!="small_group")
    10.           d=d.parentElement;
    11.         var dd=d;
    12.         while(dd.id!="big_group")
    13.           dd=dd.parentElement;
    14.         if(typeof(dd.all["small_group"].length)=='number')
    15.           if(dd.all["small_group"].length>1)
    16.             d.outerHTML="";
    17.           else  
    18.             for(var i=0;i<d.all.length;i++)
    19.               if(typeof(d.all[i].type)=='string')
    20.                 if(d.all[i].type=='text')
    21.                   d.all[i].value='';
    22.         else
    23.           for(var i=0;i<d.all.length;i++)
    24.             if(typeof(d.all[i].type)=='string')
    25.               if(d.all[i].type=='text')
    26.                 d.all[i].value='';
    27.         }
    28.  
    29.       function Small_Add(t)
    30.         {
    31.         var d=t;
    32.         while(d.id!="small_group")
    33.           d=d.parentElement;
    34.         var dd=d;
    35.         while(dd.id!="big_group")
    36.           dd=dd.parentElement;
    37.         var n=0;
    38.         if(typeof(dd.all["small_group_n"].value)=='string')
    39.           n=parseInt(dd.all["small_group_n"].value);
    40.         else
    41.           for(var i=0;i<dd.all["small_group_n"].length;i++)
    42.             if(dd.all["small_group_n"][i].value>n)
    43.               n=dd.all["small_group_n"][i].value;
    44.  
    45.         var s=/\[addenda\]\[\d\]/gi;
    46.         var m=n;
    47.         m++;
    48.         var r="[addenda]["+m+"]";
    49.         var text=d.outerHTML.replace(s,r);
    50.         text=text.replace(/value=\d /gi,'value='+m+' ');
    51.        
    52.         d.outerHTML=d.outerHTML+text;
    53.        
    54.         var counter=1;
    55.         for(i=0;i<dd.all.length;i++)
    56.           if(typeof(dd.all[i].name)=='string')
    57.             if(dd.all[i].name.indexOf('[ord]')!=-1)
    58.               dd.all[i].value=counter++;
    59.          
    60.         }
    61.     </script>
    62.   </head>
    63.   <BODY>
    64.     <form method=post>
    65.    
    66.       <div id=big_group>
    67.         <input type=hidden value=1>
    68.        
    69.         <input name="form[new][1][name]" value="Name">
    70.         <input name="form[new][1][price1]" value="Price1">
    71.         <input name="form[new][1][price2]" value="Price2">
    72.        
    73.         <div id=small_group>
    74.       <table>
    75.         <tr>
    76.         <td><input name=small_group_n type=hidden value=1></td>
    77.         <td><input name="form[new][1][addenda][1][ord]" type=hidden value=1></td>
    78.         <td><input name="form[new][1][addenda][1][name]" value="Name"></td>
    79.         <td><input name="form[new][1][addenda][1][value]" value="Value"></td>
    80.         <td><input type=button value=Add onclick="Small_Add(this);"></td>
    81.         <td><input type=button value=Del onclick="Small_Del(this);"></td>
    82.       </tr>
    83.         </table>
    84.         </div>
    85.        
    86.         <input type=button value=Add>
    87.         <input type=button value=Copy>
    88.        
    89.       </div>
    90.      
    91.     <input type=Submit>
    92.     </form>
    93.   </BODY>
    94. </html>
    PHP:
    1.  
    2. <?php
    3. //<!--
    4. if(!isset($_POST['form']))return;
    5. echo "<pre>";
    6. print_r($_POST['form']);
    7. echo "</pre>";
    8. //-->
    9. ?>
    10.