Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400

    Problema con RegExp e spazio tra caratteri

    Ciao.

    Scusate potreste spiegarmi (ed anche suggerirmi una soluzione pratica) perchè questa regular expression non convalida un testo del tipo: `san cristobal de las casas` ?

    Ecco la RegExp:
    codice:
    /^([a-zA-Z]+|[a-zA-Z]+\s[a-zA-Z]+)$/i
    Vi ringrazio anticipatamente.

  2. #2
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Non è molto chiaro quello che vuoi ottenere. Se vuoi che vengano convalidate solo stringhe contenenti parole e spazi (senza numeri), usa questa:

    codice:
    var miaRE = /^[a-zA-Z\s]*$/;
    Occhio, ché la punteggiatura e i caratteri accentati daranno esito negativo!
    Il flag (case) i(nsensitive) è inutile!


  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    fa passare o "parola" o "parola parola", non "parola parola parola parola"

    /^([a-zA-Z]+|([a-zA-Z]+\s[a-zA-Z]+)+)$/i

    edit: credo non voglia permettere spazi finali o iniziali

  4. #4
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Grazie per le risposte.

    Con questa RegExp l'intenzione iniziale era quella di convalidare solo `strighe` (sia maiuscole che minuscole) contenenti parole divise eventualmente da spazi (come appunto `san cristobal de las casas`).

    Non devono essere convalidati numeri o caratteri speciali (comprese lettere accentate) e spazi iniziali e finali.

    E' più chiaro?

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    prova quello che ho postato, ad andare va

  6. #6
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Originariamente inviato da wegawhite
    Grazie per le risposte.

    Con questa RegExp l'intenzione iniziale era quella di convalidare solo `strighe` (sia maiuscole che minuscole) contenenti parole divise eventualmente da spazi (come appunto `san cristobal de las casas`).

    Non devono essere convalidati numeri o caratteri speciali (comprese lettere accentate) e spazi iniziali e finali.

    E' più chiaro?
    Bene, se vuoi che anche le stringhe inizianti e/o terminanti per spazio diano false, usa invece quest'altra:

    codice:
    var miaRE = /^[a-zA-Z](\s*[a-zA-Z]+)*$/;

  7. #7
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    @Xinod
    Non so se è intenzionale, ma la RegExp che hai postato ha il vantaggio/svantaggio di dare false nel caso in cui ci siano due spazi consecutivi. E il flag "i" è inutile.

    (aggiunta successiva: )

    Aggiungo qui la modifica alla mia regexp per ottenere lo stesso risultato di xinod (false in caso di due o più spazi):

    codice:
    var miaRE = /^[a-zA-Z](\s[a-zA-Z]+)*$/;

  8. #8
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Grazie moltissime!

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.