What is the regular expression to allow uppercase/lowercase (alphabetical characters), periods, spaces and dashes only?

regex

Solution

The regex you're looking for is `^[A-Za-z.\s_-]+$`

- `^` asserts that the regular expression must match at the beginning of the subject

- `[]` is a character class - any character that matches inside this expression is allowed

- `A-Z` allows a range of uppercase characters

- `a-z` allows a range of lowercase characters

- `.` matches a period rather than a range of characters

- `\s` matches whitespace (spaces and tabs)

- `_` matches an underscore

- `-` matches a dash (hyphen); we have it as the last character in the character class so it doesn't get interpreted as being part of a character range. We could also escape it (`\-`) instead and put it anywhere in the character class, but that's less clear

- `+` asserts that the preceding expression (in our case, the character class) must match one or more times

- `$` Finally, this asserts that we're now at the end of the subject

When you're testing regular expressions, you'll likely find a tool like regexpal helpful. This allows you to see your regular expression match (or fail to match) your sample data in real time as you write it.

Problem

I am having problems creating a regex validator that checks to make sure the input has uppercase or lowercase alphabetical characters, spaces, periods, underscores, and dashes only. Couldn't find this example online via searches. For example: These are ok: ``` Dr. Marshall sam smith .george con-stanza .great peter. josh_stinson smith _.gorne ``` Anything containing other characters is not okay. That is numbers, or any other symbols.

Original source