Мне нужно удостовериться, что люди правильно ввели свои первые, средние и фамильные имена для формы в Rails. Итак, первая мысль для регулярного выражения:
\A[[:upper:]][[:alpha:]'-]+( [[:upper:]][[:alpha:]'-]*)*\z
Это гарантирует, что каждое слово в имени начинается с заглавной буквы, за которой следует буква или дефис или апостроф.
Мой первый вопрос, который, я думаю, не имеет большого отношения к регулярным выражениям, хотя я надеюсь, что там будет регулярное выражение, которое я могу скопировать для этого. Будут ли буквы, дефисы и апострофы единственными символами, которые я должен проверять на имени?
Мой второй вопрос заключается в том, важно ли удостовериться, что каждое имя имеет по крайней мере 1 прописную букву? Так много людей вводят все строчные имена, и я действительно хочу этого избежать, но иногда ли это законно?
Вот то, что у меня есть до сих пор, чтобы в нем было как минимум 1 буква в верхнем регистре:
\A([[:alpha:]'-]+ )*[[:alpha:]'-]*[[:upper:]][[:alpha:]'-]*( [[:alpha:]'-]+)*\z
Нет ли выражения скобки [: name:]?:)
ОБНОВЛЕНИЕ: я добавил .
и ,
к допустимым символам, удивленный, что я не думал об этом изначально. Так много людей должны иметь дело с таким регулярным выражением! Никто не имеет каких-либо готовых регулярных выражений для такого рода вещей?