Я пытаюсь записать регулярное выражение в JavaScript для соответствия полю имени, где единственные позволенные значения являются буквами, апострофами и дефисами. Например, следующие имена должны быть подобраны:
jhon's
avat-ar
Josh
Кто-то мог помочь мне создать такой regex?
Да.
^[a-zA-Z'-]+$
Здесь
^
означает начало строки, а $
- конец строки. [...]
- это класс символов, все, что находится внутри него, будет сопоставлено. x+
означает, что шаблон перед ним может быть повторен один или несколько раз. Внутри класса символов,
a-z
и A-Z
- строчные и прописные буквы, '
- апостроф, и -
- дефис. Дефис должен стоять в начале или в конце, чтобы избежать путаницы с разделителем диапазонов, как в a-z
. Обратите внимание, что этот класс не будет соответствовать международным символам, например, ä. Вы должны включать их отдельно, например,
^[-'a-zA-ZÀ-ÖØ-öø-ſ]+$