Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS]Wyrazenia Regularne
Forum PHP.pl > Forum > Po stronie przeglądarki
qba10
Mam taki kod JavaScript
  1. var Reg = new RegExp("/\[(.*?)\]/i");
  2. var match = Reg.exec("")
  3. for(i in array)
  4. {
  5. var match = Reg.exec(array[i]);
  6. alert(match);
  7. }

Próbuje z takiej tablicy:
[1x1]:0,[2x1]:1,[1x2]:1,[2x2]:2,

Wyciągnąć to co jest pomiędzy kwadratowymi nawiasami. Jednak skrypt wywala mi ciągle null. Co mam źle?
croc
Jeśli dobrze zrozumiałem przykład:
[JAVASCRIPT] pobierz, plaintext
  1. var values = new Array('[1x1]:0', '[2x1]:1', '[1x2]:1', '[2x2]:2');
  2.  
  3. var reg = new RegExp(/\[(.*?)\]/);
  4. for(i in values) {
  5. var result = reg.exec(values[i]);
  6. alert(result);
  7. }
[JAVASCRIPT] pobierz, plaintext
erix
Yhm, ale po co do takiej prostej rzeczy wyrażenia regularne...? Zwykły substr będzie w zupełności wystarczającym rozwiązaniem.
croc
Czy wystarczy to już wie tylko autor tematu. Zależy jakie dane mogą się znaleźć w tablicy.
qba10
Mam jeszcze jeden problem. Kod który podał @croc nie działa jak powinien.
  1.  
  2. <script Type="text/javascript">
  3. var values = new Array('[1x1]:0', '[2x1]:1', '[1x2]:1', '[2x2]:2');
  4.  
  5. var reg = new RegExp(/\[(.*)\]/);
  6. for(i in values) {
  7. var result = reg.exec(values[i]);
  8. document.write(result+";");
  9. }
  10.  
  11.  
  12. </body>
  13. </html>


Kod zamiast zwrócić:
1x1;2x1;1x2;2x2
zwraca:
[1x1],1x1;[2x1],2x1;[1x2],1x2;[2x2],2x2;
croc
Tak właśnie działa .exec. Jeżeli w wyrażeniu regularnym jest nawias grupujący, to zwraca tablicę składającą się z całego dopasowania oraz wyrażenia w nawiasie. ciebie interesuje to w nawiasie, czyli result[1].
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.