Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    REPLACE multipla con ExpReg

    Vorrei semplificare una serie di replace per le vocali accentate.

    Nel testo ho le vocali con l'apostrofo (a' e' i' o' u') e questo mi crea una cacofonia nel textToString.
    Ora non faccio altro che eseguire 5 replace per ogni vocale.
    Non è possibile tramite ExpReg fare tutto con un'unica istruzione?



    Grazie
    Io nella vita ho visto cose che voi astemi neanche potete immaginare.

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Più precisamente parliamo di RegExp non di "ExpReg"

    mi crea una cacofonia nel textToString
    Cioè? Cosa sarebbe textToString?

    Non è possibile tramite ExpReg fare tutto con un'unica istruzione?
    Sì, puoi risolvere usando una funzione nel replace che andrà a sostituire i termini trovati confrontandoli, attraverso un oggetto che faccia da dizionario, con quelli sostitutivi.

    Puoi prendere spunto da una cosa del genere:
    codice:
    var str = "Si', e' andato di la', un po' piu' giu' pero'";
    console.log(
      str.replace(/[aeiou]'/g, function(c) {return {a:"à",e:"è",i:"ì",o:"ò",u:"ù"}[c[0]];})
    );
    Chiaramente il procedimento che stai impiegando può comunque produrre degli errori ortografici, ad esempio, nel caso in cui ci siano delle vocali che effettivamente vanno apostrofate e non accentate. Potrebbero infatti essere presenti delle parole "troncate" in cui ci va l'apostrofo anziché l'accento.
    Vedi la stringa nell'esempio, la parola po' è corretta scritta così, ma il replace la va a modificare in modo ortograficamente errato perché sostituisce comunque il carattere apostrofato con quello accentato.

    Un problema analogo sta nelle parole con la é (che ha un accento acuto) come perché, finché, anziché, né. In questo caso il tuo procedimento andrebbe a sostituire sempre la e' con una è (che invece ha un accento grave).

    Se non ti interessa il fatto di avere questi eventuali errori, allora puoi usare lo script d'esempio. Diversamente dovrai rivedere meglio il procedimento e aggiungere, nella sostituzione delle lettere in questione, maggiori controlli per ottenere una corretta ortografia.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    ah ah ah ... sopra ho scritto uno strafalcione e non me ne sono accorto. Intendevo TextToSpeech

    La func che hai suggerito mi piace. In giornata la provo.

    Per quanto riguarda l'esattezza dell'apostrofo non importa datosi che il testo rimane inalterato ma lo cambio solo per la voce che in qualsiasi caso di vocale apostrofata va pronunciata accentata.


    Grazie
    Io nella vita ho visto cose che voi astemi neanche potete immaginare.

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.