2010-05-19 9 views
1

Je ne suis pas bon avec des expressions régulières ...Valider une chaîne

je besoin d'une expression régulière JavaScript qui fera les suivants:

  1. La chaîne peut contenir des lettres (supérieure et minuscules), mais pas de signes de ponctuation tels que éàïç ...
  2. La chaîne peut contenir des chiffres (0,9) n'importe où dans la chaîne, sauf sur la première position.
  3. La chaîne peut contenir des traits de soulignement (_).

chaînes valides:

  • Foo
  • foo1
  • foo_bar
  • fooBar

cordes non valides:

  • 1foo -> Numéro en tant que premier caractère
  • foo bar -> Espace
  • FOO -> ponctuation ö

Un grand merci!

+1

Vous recherchez un validateur d'identifiant CSS? Bien que certaines règles de validation soient manquantes, cela est très proche. – BalusC

+0

Non, c'est pour un système de nommage. Ce sont mes règles pour "simplifier" la lisibilité de ces noms. – Activist

+0

Ah OK. Peu importe, posté une réponse :) J'espère que cela a aidé. – BalusC

Répondre

9

Ce regex devrait faire ce que vous avez besoin:

/^[a-z_]+[\w]*$/i 

Utilisez comme suit:

var match = /^[a-z_]+[\w]*$/i.test(string); 

Quelques explications:

 
/ : start of JavaScript regex pattern 
^  : start of string 
[a-z_] : only alphabetic characters or underscore 
+  : one or more 
[\w] : any word-character (aplhanumeric and the underscore) 
*  : zero or more 
$  : end of string 
/ : end of JavaScript regex pattern 
i  : case insensitive modifier 

Pour en savoir plus sur les expressions régulières, vous pouvez trouver this site utile.

+0

Juste besoin d'un trait de soulignement dans [a-z]: '[a-z_]' – adamJLev

+0

Oui, si le trait de soulignement peut apparaître n'importe où, le '[a-z]' devrait en effet être '[a-z_]'. Hmm, en fait, tu as raison, il n'a pas explicitement interdit le trait de soulignement à l'avant. Réponse mise à jour – BalusC

+0

Merci pour la réponse et les mises à jour! – Activist

Questions connexes