tags:

views:

307

answers:

4

I am trying to write a regex that will only allow lowercase letters and up to 10 characters

what I have so far looks like this

pattern: /^[a-z]{0,10}+$/

this does not work/compile. I had a working one that would just allow lowercase letters which was this

pattern: /^[a-z]+$/

but I need to limit the number of characters to 10. Thanks for your help!

+6  A: 

You can use curly braces to control the number of occurrences. For example, this means 0 to 10:

/^[a-z]{0,10}$/

The options are:

  • {3} Exactly 3 occurrences;
  • {6,} At least 6 occurrences;
  • {2,5} 2 to 5 occurrences.

See the regular expression reference.

Your expression had a + after the closing curly brace, hence the error.

cletus
There is a tiny error, OP want only lowercase letter`/^[a-z]{0,10}$/` was what he wanted
yogsototh
+2  A: 

It very much depend on the program you're using. Different programs (emacs, vi, sed, perl) use slightly different regular expressions. In this case, I'd say that in the first pattern, the last "+" should be removed.

Diego Sevilla
+3  A: 

/^[a-z]{0,10}$/ should work. /^[a-z]{1,10}$/ if you want to match at least one character, like /^[a-z]+$/ does.

Joren
A: 

It might be beneficial to add greedy matching to the end of the string, so you can accept strings > than 10 and the regex will only return up to the first 10 chars. /^[a-z0-9]{0,10}$?/

Bob.T.Terminal