Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS]Wyrazenia Regularne
qba10
post 15.05.2010, 10:41:17
Post #1





Grupa: Zarejestrowani
Postów: 264
Pomógł: 20
Dołączył: 19.08.2007
Skąd: Bryńsk k. Lidzbarka Welskiego (nie mylić z Warmińskim)

Ostrzeżenie: (0%)
-----


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?


--------------------
Qbix Media Project - Prosty Multiplatformowy Odtwarzacz Muzyki
Go to the top of the page
+Quote Post
croc
post 15.05.2010, 10:52:00
Post #2





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
erix
post 15.05.2010, 10:55:44
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Yhm, ale po co do takiej prostej rzeczy wyrażenia regularne...? Zwykły substr będzie w zupełności wystarczającym rozwiązaniem.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
croc
post 15.05.2010, 10:57:37
Post #4





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Czy wystarczy to już wie tylko autor tematu. Zależy jakie dane mogą się znaleźć w tablicy.
Go to the top of the page
+Quote Post
qba10
post 15.05.2010, 17:06:46
Post #5





Grupa: Zarejestrowani
Postów: 264
Pomógł: 20
Dołączył: 19.08.2007
Skąd: Bryńsk k. Lidzbarka Welskiego (nie mylić z Warmińskim)

Ostrzeżenie: (0%)
-----


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;


--------------------
Qbix Media Project - Prosty Multiplatformowy Odtwarzacz Muzyki
Go to the top of the page
+Quote Post
croc
post 15.05.2010, 17:48:19
Post #6





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


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].
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 12:37