ciao a tutti
come inserisco una variabile javascript in un' espressione regolare ?
tipo
mia_stringa = 'pippo';
mio_tag = 'b';
mia_stringa = mia_stringa.replace( /<mio_tag>pippo<\/mio_tag>/g, 'pippo' );
devo ottenere:
mia_stringa = 'pippo';
:master:
ciao a tutti
come inserisco una variabile javascript in un' espressione regolare ?
tipo
mia_stringa = 'pippo';
mio_tag = 'b';
mia_stringa = mia_stringa.replace( /<mio_tag>pippo<\/mio_tag>/g, 'pippo' );
devo ottenere:
mia_stringa = 'pippo';
:master:
Hai provato a creare un sito con Jaaxo Cms PHP5? new!
Se vuoi togliere tutti i tag da una stringa, la cosa e` semplice:Se invece vuoi togliere solo i tag di un certo tipo (ad esempio [b] ):codice:str = str.replace(/\<.+?\>/g,"");Piu` complesso se vuoi passare il tag come parametro:codice:str = str.replace(/\<\s*?b.*?\>/gi,"");Nota che questa sintassi potrebe non essere riconsociuta da alcuni browsercodice:var par = "b"; var re = new RegExp("\<\s*?" + par + ".*?\>", "gi"); str = str.replace(re, "");
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
infatti ho dei problemi...
esempio:
ho del testo selezionato salvato nella variabile
"selezionato"
voglio verificare se a tale testo č appliacata una classe
quindi faccio:
var re = new RegExp("\<SPAN class=(.+)\>" + selezionato + "\</SPAN\>", "gi");
stringa_modificata = stringa.replace( re, selezionato );
ma non funziona, cioō non viene interpretata come espressione regolare la parte tra parentesi tonde
(.+)
ho provato con IE...
ho fatto un errore nella sintassi oppure č IE con l'interpreta.
eventualmente esiste una soluzione alternativa? Non so magari facendo 2 controlli separati![]()
Hai provato a creare un sito con Jaaxo Cms PHP5? new!
E` una cosa che avevo gia` notato:
In effetti in qualche browser il replace vuole una stringa al suo interno, non una RegExp. Prova a modificare la riga in questo modo:
var re = /\<\s*?" + par + ".*?\>/gi
Non mettere il puntoevirgola alla fine della stringa.
In questo modo potrebbe pero` ignorare il /gi
Altrimenti occorre usare un metodo piu` complesso; se serve fammelo spare che ci penso (al momento non so neppure se si puo` realizzare)
PS. il tutto presuppone che nel parametro non ci siano caratteri speciali: sono ammessi solo caratteri alfanumerici.
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
non va...
stringa = "pasta <SPAN class=Stile_blu>alla</SPAN> carbonara";
var re = /\<\s*?" + selezionato + ".*?\>/gi
stringa_modificata = stringa.replace( re, selezionato );
io dovrei ottener:
pasta alla carbonara (ho selezionato alla)
![]()
Hai provato a creare un sito con Jaaxo Cms PHP5? new!
La mia RegExp era per eliminare un particolare TAG, non per quanto contenuto dentro il tag.
Vedi quest'altra RegExp:
var re = /\<\s*?.?\>\s*?(" + selezionato + ")\s*?\<.*?\>/gi
da usare con:
stringa_modificata = stringa.replace( re, "$1");
Il $1 sta per: quanto contenuto dentro la (prima) parentesi tonda.
PS: fatti anche un alert contenente la stringa re, e controlla che sia una RegExp valida
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
grazie, ora provo
Hai provato a creare un sito con Jaaxo Cms PHP5? new!
non riesco![]()
Hai provato a creare un sito con Jaaxo Cms PHP5? new!
io non ho ancora capito bene![]()
... vuoi togliere i tag ad una determinata parola solo se ha come attributo una classe? cmq io ho provato cosė:
ovviamente č molto rigida...ma non so se č quello che volevicodice:var selezionato = "alla"; var s = "pasta <SPAN class=Stile_blu>alla</SPAN> carbonara"; var re = "<([a-z]*)\\s+class=[a-z_]+>"+selezionato+"</\\1>"; reg = new RegExp(re, "gi"); stringa_modificata = s.replace( reg, selezionato ); alert(stringa_modificata);![]()
dA .. foto di viaggio
L'esperienza č il tipo di insegnante pių difficile.
Prima ti fa l'esame, e poi ti spiega la lezione.
![]()
funziona perfettamente, il problema era che non riuscivo a far interpretare all'espressione regolare il valore della variabile "selezionato"
grazie AnĒkin per l'ottima soluzione.
ora perō ho scoperto che c'č un altro problema
![]()
in pratica se io ho:
var s = "pasta <SPAN class=Stile_blu>alla</SPAN> carbonara e <SPAN class=Stile_giallo>alla</span> puttanesca";
lo script mi corregge entrambe le "alla", ma io ne ho selezionato uno solo.
sapete come ottenere la posizione (numerica) della parola selezionata nell'iframe.![]()
Hai provato a creare un sito con Jaaxo Cms PHP5? new!