2010-09-14 20 views
9

Potrzebuję napisać wyrażenie regularne dla kontrolek sieci Web ASP.NET RegularExpressionValidator.Wyrażenie regularne pasujące tylko do liter

Wyrażenie regularne powinny umożliwić wszystkie znaki, ale nie cyfr lub znaków specjalnych (na przykład: |! "£ $% & /()

Każdy pomysł jak to zrobić

Odpowiedz

15
^[A-Za-z]+$ 

sprawdza ciąg o długości 1 lub większej, składający się wyłącznie z liter ASCII.

^[^\W\d_]+$ 

robi to samo dla listów międzynarodowych.

Objaśnienie:

[^ # match any character that is NOT a 
\W # non-alphanumeric character (letters, digits, underscore) 
\d # digit 
_ # or underscore 
] # end of character class 

Skutecznie, masz \w minus (\d i _).

Albo można użyć fakt, że właściwości ASP.NET obsługuje Unicode:

^\p{L}+$ 

sprawdza ciąg liter Unicode o długości 1 lub więcej.

+0

Świetna odpowiedź; aby go uzupełnić: '\ p {Ll}' dopasowuje tylko małe litery, a '\ p {Lu}' tylko wielkie. – mklement0

3

Można używać.? regex:

^[a-zA-Z]+$ 

Objaśnienie:

  • ^: Start kotwica
  • [..]: Klasa Char
  • +: jeden lub więcej repetations
  • $: Koniec kotwica
7

łącznie ze spacjami:

"^[a-zA-Z ]*$" 

wyłączeniem przedziałów:

"^[a-zA-Z]*$" 

Żeby było non-opcja zmień * do +

Powiązane problemy