Il linguaggio JavaScript
 

RegEx funziona con Php ma non con JS

tasim 26 Mar 2015 19:13
Perché questa RegEx su un feed rss non funziona con JS mentre funziona
con PHP?
var
a=rssFeed.match(/(<item>|<entry>).*?(<pubDate>|<published>|<updated>)(.*?)</mi);
Andrea Scartabelli 26 Mar 2015 20:53
On 26/03/15 19:13, tasim wrote:
> Perché questa RegEx su un feed rss non funziona con JS mentre funziona
> con PHP?
> var
>
a=rssFeed.match(/(<item>|<entry>).*?(<pubDate>|<published>|<updated>)(.*?)</mi);

Dovresti per favore definire "non funziona".

Puoi fare un esempio di cosa vorresti come risultato per un dato input?

Cosa c'entra il flag "m" in questa RegExp?
MidiQuiz 27 Mar 2015 08:10
rssFeed è il contenuto di una pagina rss. p.e.:
<generator>http://wordpress.org/?v=3.5.2</generator>
<item>
<title>titolo</title>
<pubDate>Fri, 27 Mar 2015 07:05:04 +0000</pubDate>

m è un Modifiers:
Perform multiline matching

--
http://interno.135.it
Andrea Scartabelli 27 Mar 2015 10:45
On 27/03/15 08:10, MidiQuiz wrote:

Sei sempre "tasim"?

> rssFeed è il contenuto di una pagina rss. p.e.:
> <generator>http://wordpress.org/?v=3.5.2</generator>
> <item>
> <title>titolo</title>
> <pubDate>Fri, 27 Mar 2015 07:05:04 +0000</pubDate>
>
> m è un Modifiers:
> Perform multiline matching

Sì, so cos'è un feed rss e so cos'è il flag "m": il mio punto è che in
quella regex non ha senso.

E forse proprio da qui nasce il dubbio di "tasim" o il tuo.

Mi spiego meglio.

Se prendo lo stralcio di xml che riporti e lo metto tutto su una riga
ottengo dei match con la regexp proposta.

Se spezzo le righe con "\n", ad esempio, non ottengo mai match (anche
per forza).

Da qui il mio dubbio che "tasim" non sappia come funziona quel flag in
js (non so com'è in php).

Copio / incollo da MDN a proposito del flag "m":

"treat beginning and end characters (^ and $) as working over multiple
lines (i.e., match the beginning or end of each line (delimited by \n or
\r), not only the very beginning or end of the whole input string)"

<https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp>
P/ero 28 Mar 2015 14:43
"tasim" [by Mozilla/5.0 (X11; Linux x86_64; rv:36.0.1) Gecko/20150308
Firefox/36.0.1] on 26/03/15 19:13:28 (Italian Time) wrote:

> Perché questa RegEx su un feed rss non funziona con JS mentre funziona
> con PHP?
> var
>
a=rssFeed.match(/(<item>|<entry>).*?(<pubDate>|<published>|<updated>)(.*?)</mi);

Prova a modificarlo così: /gmi
--
* b *
* y *
* Piero *
#v+
Ho nascosto qualche grammo di cervello per uso personale.
#v-

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio JavaScript | Tutti i gruppi | it.comp.lang.javascript | Notizie e discussioni javascript | Javascript Mobile | Servizio di consultazione news.