Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di renzoz
    Registrato dal
    May 2001
    Messaggi
    305

    Sostituzione caratteri in campi text

    Ciao, so che il problema è già stato affrontato ma non riesco a venirne fuori:

    ho un form con molti campi, alcuni dei quali di tipo text e all'evento OnChange vorrei sostituire tutte le lettere accentate con l'apostrofo con le corrispettive accentate correttamente cosi:

    A' = À
    E' = È
    O' = Ò
    I' = Ì
    U' = Ù

    avevo provato cosi (solo con la A') ma è na giofeca:

    <script language="Javascript">
    function rimpiazza(str)
    {
    if (str="A'") {str = str.replace("A'", "À"); }
    }

    </script>

    <input class="fr" type="text" name="cognome" size="40" value="" onchange="this.value=this.value.toUpperCase(); this.value=this.value.rimpiazza();">

    chiedo aiuto

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    il problema è che nella lingua italiana in generale gli accenti sono tutti gravi ad eccezione delle parole termnanti in ché (poiché, perché...) in cioé in né e in sé

    Ora provo ad elaborarti un gruppo di regexp
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it L'avatar di renzoz
    Registrato dal
    May 2001
    Messaggi
    305
    Grazie fcaldera, considera che le stringhe di questi campi le voglio trasformare prima in maiuscolo, questo dovrebbe restringere la funzione no?

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    codice:
    <script>
    var frase = "Si', cioe' e' cosi' che che potra' funzionare: ne' io ne' lui sapremo perche' ";
    
    function normalizeAccents(text) {
        text = text.replace(/(ch)(e)'/gi, function($0, $1, $2) { return $1+"&"+$2+"acute;" }) 
        text = text.replace(/(\W)(n|s)(e)'/gi, function($0, $1, $2, $3) { return $1+$2+"&"+$3+"acute;"})
        text = text.replace(/(\W)(cio)(e)'/gi, function($0, $1, $2, $3) { return $1+$2+"&"+$3+"acute;"})
        text = text.replace(/(\w)'/gi, function($0, $1) { return "&"+$1+"grave;"})
        return(text);
    }
    
    document.write(normalizeAccents(frase));
    document.write(normalizeAccents(frase.toUpperCase()));
    
    </script>
    
    
    </head>
    Ciao



    Keywords: sostituire sostituzione accenti regexp espressione regolare
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Utente di HTML.it L'avatar di renzoz
    Registrato dal
    May 2001
    Messaggi
    305
    Ti ringrazio molto ma come l'associo ai vari campi text usando l'evento onchange?

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    codice:
    <input type="text" onchange="this.value = normalizeAccents(this.value.toUpperCase())" />
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  7. #7
    Utente di HTML.it L'avatar di renzoz
    Registrato dal
    May 2001
    Messaggi
    305
    È perfetta, sei stato gentilissimo, grazie.

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.