Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> JS - RegExp, wieloliniowość
mrWodoo
post 15.01.2012, 10:35:58
Post #1





Grupa: Zarejestrowani
Postów: 160
Pomógł: 6
Dołączył: 13.01.2012
Skąd: Bytom

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


WItam, mam problem, bo moje wyrażenie regularne nie chce działać z tekstem wieloliniowym, tzn. jeżeli w polu textarea jest coś zapisane co ma kilka liniii to się nie wykona skrypt JS...
[JAVASCRIPT] pobierz, plaintext
  1. var Message = new RegExp( "\<textarea (.*?)\>(.*)\<\/textarea\>", "m" );
  2.  
  3. alert( Message.exec( responseMessage ) );
[JAVASCRIPT] pobierz, plaintext


A ten kod zawsze wypluje pusty alert...

Pomocy, nie umiem sobvie z tym poradzić.


--------------------
Go to the top of the page
+Quote Post
kamil4u
post 15.01.2012, 14:31:56
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Cytat
"\<textarea (.*?)\>

Jesteś pewien, że ta spacja ma być? Chyba nie smile.gif

http://www.egrafik.pl/kurs-regex-wyrazenia-regularne/

Cytat
. dopasowuje się do każdego znaku oprócz końca linii.

Cytat
m -> Ta flaga powoduje że znak początku tekstu (^) i końca tekstu ($) są także w kolejnych liniach znakami początku i końca linii.
Po co Ci ta flaga?

Kod
<script type="text/javascript">
var x = "<textarea> test \n test test\n </textarea>";
var y = "<textarea> test </textarea>";

var Message = new RegExp( "\<textarea(.*?)\>((.|\n)*)\<\/textarea\>");  

alert( Message.exec( x ) );
alert( Message.exec( y ) );

</script>


Zastanów się czy wyrażenie regularne to najlepsze rozwiązanie. Może lepiej użyć metod DOM-u?


--------------------
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:30