I want a regular expression that allow only alphabet, one space after word, and – only
it will not accept two word but single space after word allowed. Any ther special character are not allowed.
Example
John -> true
John(space) -> true
John-Doe -> true
John-Doe(space) -> true
(space)John -> false
John Doe -> false
I am trying using this [a-zA-Z-][a-zA-Z -]
But not working exactly.
Please help.
>Solution :
If you don’t want to allow consecutive hyphens -- in the pattern, you might write the pattern as:
^[A-Z][a-z]+ ?(?:-[A-Z][a-z]+ ?)?$
Explanation
^Start of string[A-Z][a-z]+ ?Match a char A-Z and 1+ chars a-z followed by an optional space (or[A-Za-z]+if you want to allow mixed chars)(?:-[A-Z][a-z]+ ?)?Optionally match the same as the preceding pattern with a leading-$End of string
See a regex demo
If you want to allow all mixed chars with an optional space at the end:
^[A-Za-z-]+ ?$