Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] Problem z wyrażeniem regularnym, pobranie wszystkich <h1> z tekstu
pgrzelka
post
Post #1





Grupa: Zarejestrowani
Postów: 313
Pomógł: 24
Dołączył: 9.08.2008
Skąd: Kielce

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


Witam

mam jakiś tam tekst html zapisany w zmiennej
Kod
tekst = "to jest tekst html <h1>naglowek</h1> tekst tekst <h1>tekst<br></h1> dalszy tekst"

chciałbym pobrać z takiego tekstu wszystkie h1 h2 h3
mam taki kod
Kod
var matches = tekst.match(/<h[^<]+>[^>]*[<br>]*<\/\h.>/g);


niestety nie interpretuje mi on <br> w <h1>

proszę o pomoc

podbijam, na prawdę nikt nie wie ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zegarek84
post
Post #2





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


Cytat(pgrzelka @ 25.10.2010, 09:41:15 ) *
mam jakiś tam tekst html zapisany w zmiennej
Cytat(wookieb @ 25.10.2010, 11:06:43 ) *
Ee tam. To moj glupota, że jak widze regexp to zawsze myslę, że chodzi o php.
getElementsByTagName
w zmiennej a nie w drzewie DOM (IMG:style_emoticons/default/winksmiley.jpg)

w nawiasach kwadratowych definiuje się zestaw znaków dozwolonych a nie grupuje się ciągu tekstowego (IMG:style_emoticons/default/winksmiley.jpg) - więc Ty potrzebujesz coś w stylu:
/<h[^<]+>[^>]*(<br>)*<\/\h.>/g

a jeszcze lepiej:
/<h[^<]+>[^>]*(?:<br>)*<\/\h.>/g

a o ile tego br ma być 0 lub 1 to:
/<h[^<]+>[^>]*(?:<br>)?<\/\h.>/g

gdzie znak zapytania znaczy tyle co {0,1}...

poczytaj o grupowaniu wyrażeń regularnych + różnica między (wyrażenie) a (?:wyrażenie) to w pierwszym przypadku dopasowanie masz przechowywane w zmiennej/tablicy a w drugim przypadku nie...
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 16.10.2025 - 12:12