![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 0 Dołączył: 13.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Cytat var str2 = document.getElementById("textarea").value; str2 = str2.match(/test1(.*?)test2/g); document.getElementById("p3").innerHTML = str2; Czemu taki kod zwraca mi wartość: Cytat test1 tutaj jakis test test2 Chciałbym, aby zwracał: Cytat tutaj jakis test
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
match zwraca ci tablice z odpowiedziami, dokladnie tak jak preg_match w php. A ze ty potem bez namyslu te tablice rzutujesz na tekst to masz co masz
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@nospor - też tak myślałem, ale przy wywołaniu np:
W konsoli mam string ![]() Pewnie jest tu jakiś śmieszny trik do zrobienia, ale na JS się nie znam ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@kapslokk wg manuala to zwraca tablice wiec nawet nie sprawdzalem
![]() https://developer.mozilla.org/en/docs/Web/J...ts/String/match -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Znaczy tak, zwraca tablice, ale z jednym elementem, ktorym jest caly string ktory pasuje do regexa w tym przypadku. Czyli tak jakby w przypadku preg_matcha nie bylo tego nawiasu w srodku. Taki preg_match_all bez nawiasow
![]() Ten post edytował kapslokk 15.09.2016, 09:14:39 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Wg dokumentacji zwraca tablice z elementami.... Zmuszasz mnie do testow normanie
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 0 Dołączył: 13.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
@nospor bez problemu mogę wyłuskać wartość, gdy nie daję flagi /g. Wtedy [1] - daje mi ten tekst pomiędzy. Problem jest gdy nadam /g. Wtedy każda wartość podawana jest tylko w formie wraz z tymi test1 i test2. W jaki sposób mogę odwołać się w match() to tych elementów pomiędzy?
@kapslokk poniekąd działa, ale tylko dla jednego elementu, tak, jakby flaga /g nie była zastosowana ![]() ![]() Wzór: Cytat test1 tutaj jakis test test2 test1 drugi test2 test1 trzeci test2 I zwrócić powinno: Cytat tutaj jakis test
drugi trzeci Ten post edytował Warmix 15.09.2016, 09:24:45 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
O, z G zwraca jeden element. Wywalimi G i damy I mamy kilka elementow
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@nospor - Teraz to i sam do tego doszedłem
![]() @Warmix .exec wielokrotnie odpalany bedzie zwracal kolejne wyniki:
Mozesz odpalić go w pętli Ten post edytował kapslokk 15.09.2016, 09:26:10 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Regex w JS'ie działa tak, że kiedy nie masz ustawionej flagi g wtedy zwracany jest pierwszy napotkany wynik res[1], kiedy jest ustawiona flaga g wtedy zwracany jest cały wynik, nie tylko końcowa wartość. Działa to tak samo jak preg_match w php, jak już wyżej @nospor napisał.
Twój przypadek nie potrzebuje flagi g, chyba że w twoim przypadku wystąpień jest wiele, to wtedy i tak będziesz musiał iterować po tablicy. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 15:35 |