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

    carattere non consentito a inizio e fine stringa

    Ciao ragazzi! Ho una cosa da chiedervi:
    Io ho un js di questo tipo:
    codice:
    function oknome(string) {   if (!string) return false;
       
       var iChars = ".-_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
       for (var i = 0; i < string.length; i++) {
          if (iChars.indexOf(string.charAt(i)) == -1)
             return false;
       }         
       return true;
    }
    che mi permette di inserire solo i caratteri indicati nella var iChars...
    e fin qui va tutto bene...
    pero' io dovrei impedire all'utente di inserire i caratteri . - _ all'inizio o alla fine della stringa
    Es. 1: Questo è un nome valido: pinco-pallino
    Es. 2: Questo non è un nome valido: -pinco-pallino-

    Come posso fare a fargli capire che quei tre caratteri sono accettati solo a patto che non si trovino all'inizio o alla fine?
    Grazie 1000000000000000!!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    codice:
    function oknome(string) {   if (!string) return false;
    
      var RE = new RegExp ("^[a-zA-Z0-9][a-zA-Z0-9\.\-_ ]*[a-zA-Z0-9]$");
      if(string.match(RE) return true;
      return false;
    }
    Credo che faccia quello che vuoi, ma provalo.
    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 L'avatar di ky
    Registrato dal
    May 2001
    Messaggi
    66

    perfetto!

    Grazie Miky!!! Era proprio quello che cercavo!!!
    Ho solo fatto due correzioni, ma per il resto era tutto ok
    Posto il codice funzionante:
    codice:
    function oknome(string) {   if (!string) return false;
    
      var RE = new RegExp ("^[a-zA-Z0-9][a-zA-Z0-9-\.\_]*[a-zA-Z0-9]$");
      if(string.match(RE)) return true;
      return false;
    }
    Grazie ancora mitico Mich!

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Attenzione che il - dentro una RE ha un significato particolare, quindi va "escaped" (cioe` devi metterci il \ davanti).

    Io avevo lasciato anche lo spazio, mentre tu lo hai tolto. Nella tua lista iniziale lo spazio c'era ...
    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 L'avatar di ky
    Registrato dal
    May 2001
    Messaggi
    66

    lo so...

    ...pero' se metto il \ davanti al trattino, non mi funziona piu'....cioè non mi permette di inserire il -
    Non so come mai...
    Per quanto riguarda lo spazio, è vero, prima era inserito... :gren: pero' ho pensato che era meglio toglierlo.
    Per caso sai come mai non mi funziona con il backslash davanti?
    Grazie!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188

    Re: lo so...

    Originariamente inviato da ky
    ...pero' se metto il \ davanti al trattino, non mi funziona piu'....cioè non mi permette di inserire il -
    Non so come mai...
    Non saprei dire ...
    Ho anche controllato nel manuale, ma non dice nulla al proposito.

    Non e` che mi meravigli che venga accettato se nonc'e` la backslash, ma che non venga accettato se la backslash c'e`.

    Al limite prova a cambiare l'ordine dentro la quadra: magari c'e` davanti o dietro qualcosa che non gli piace.
    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 L'avatar di ky
    Registrato dal
    May 2001
    Messaggi
    66

    ora funziona!!!

    avevi ragione...bastava spostarlo da un'altra parte...boh, che strano.. :master:
    Cmq così funziona benissimo:
    codice:
    function oknome(string) {   if (!string) return false;
    
      var RE = new RegExp ("^[a-zA-Z0-9][a-zA-Z0-9\-\.\_]*[a-zA-Z0-9]$");
      if(string.match(RE)) return true;
      return false;
    }

    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.