Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127

    Regular Expression e sostituzione

    attraverso una regular expression trovo un parte di variabile compresa tra due tag limitatori ([inizio] e [fine])
    soltanto ke ora voglio fare una sostituzione (replace) di < e > SOLO tra [inzio] e [fine] ..

    questo mi serve xkè il testo compreso tra questi due tag non deve essere assolutamente html, mentre prima o dopo potrebbe anke esserlo ..

    come potrei fare con una regular expression?

    grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    forse una cosa di questo tipo:

    while(1) {
    str.replace(/^(.+?\[inizio\].*?)\<(.*?\[fine\].+)$/,"$1&lt;$2");
    tmp = $1
    str.replace(/^(.+?\[inizio\].*?)\>(.*?\[fine\].+)$/,"$1&gt;$2");
    if(tmp.length==0 && $1.length==0) break;
    }

    Spero di aver interpretato correttamente la domanda.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    Originariamente inviato da Mich_
    forse una cosa di questo tipo:

    while(1) {
    str.replace(/^(.+?\[inizio\].*?)\<(.*?\[fine\].+)$/,"$1&lt;$2");
    tmp = $1
    str.replace(/^(.+?\[inizio\].*?)\>(.*?\[fine\].+)$/,"$1&gt;$2");
    if(tmp.length==0 && $1.length==0) break;
    }

    Spero di aver interpretato correttamente la domanda.
    si si, l'hai interpretata bene, xò non riesco a far funzionare il tuo codice
    forse xkè non capisco cosa vuol dire /^ iniziale e $/ finale ..
    grazie!

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    ^ come primo carattere = inizio stringa
    $ come ultimo carattere = fine stringa

    Posta la tua implementazione, e magari anche la stringa su cui opera, che vedo se riesco a trovare l'inghippo (con le RE io sono sempre in lotta continua).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    guarda ora ce l'ho fatta ..
    soltanto ke mi viene data corretta lo stesso anke se non uso ^ e $ .. xò è meglio usarli, giusto?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Dipende da come sono fatte le tue stringhe.

    Se ci sono le parentesi che delimitano $1 e $2, credo sia conveniente usarli (perche` altrimenti potresti perdere dei pezzi). Tieni presente che in questo caso replace lavora su tutta la stringa.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    le re sono le tue ..
    le mie stringhe sono + o - cosi:
    codice:
    GrassCors
    [inizio]
    scrivi pure grassetto o corsivo tanto questo testo non viene formattato!!
    [fine]
    <span style="..">data</span>

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Come dire che ci sono delle \n in mezzo al testo.

    In altri lingauggi, si puo` specificare /s (alal fien della RE) per dire di ignorare i \n, ma credo che in JS non sia paossibile.

    Devi quindi prima togliere i \n ed eventualmente poi ripristinarli:

    codice:
    str = str.replace(/\n/g, "
    ");
    while(1) {
      str.replace(/^(.+?\[inizio\].*?)\<(.*?\[fine\].+)$/,"$1&lt;$2");
      tmp = $1
      str.replace(/^(.+?\[inizio\].*?)\>(.*?\[fine\].+)$/,"$1&gt;$2");
      if(tmp.length==0 && $1.length==0) break;
    } 
    //str = str.replace(/\<br \/\>/g, "\n");
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    grazie mich

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.