di andare avanti e ottenere un punto là fuori, invece di volte usando questi:
[A-Za-z0-9 _]
[A-Za-z0-9]
ho due (speriamo meglio) sostituzioni per questi due:
[\w ]
[^\W_]
Il primo corrisponde a qualsiasi carattere di parola (alfanumerico e _
, nonché Unicode) e lo spazio. Il secondo corrisponde a qualsiasi cosa che non sia un carattere non di parole o un carattere di sottolineatura (solo alfanumerico, nonché Unicode).
Se non si desidera la corrispondenza Unicode, quindi attenersi alle altre risposte. Ma questi sembrano solo più facili per gli occhi (secondo me). Prendendo la risposta "preferito" al momento della stesura e utilizzando le regex più brevi ci dà:
^[\w ]*[^\W_][\w ]*$
forse più leggibile, forse meno. Certamente più breve. La tua scelta.
EDIT:
Proprio come una nota, io parto dal presupposto regex in stile Perl qui. Il tuo motore regex può o non può supportare cose come \ w e \ W.
EDIT 2:
miniera Testato con il tester regex JS che qualcuno legato a e alcuni esempi di base ha funzionato bene. Non ha fatto nulla di esteso, volevo solo assicurarmi che \ w e \ W funzionassero bene in JS.
EDIT 3:
aver tentato di testare alcuni Unicode con il sito regex tester JS, ho scoperto il problema: la pagina utilizza ISO invece di Unicode. Non c'è da stupirsi che il mio input giapponese non corrisponda. Oh bene, quello non dovrebbe essere difficile da risolvere:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
O so. Non so cosa si debba fare per quanto riguarda JavaScript, ma sono sicuro che non è difficile.
fonte
2009-02-23 01:32:52
i s sgancio il trattino basso per qualche motivo, ma ottieni il punto .. – makeee
@makeee segna la regex come codice (circondalo di 'caratteri) e starai bene. –
Oppure fai quello che ho fatto, sfuggi alla sottolineatura con una "\". – paxdiablo