powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Проверка фамилии с помощью регулярного выражения
17 сообщений из 17, страница 1 из 1
Проверка фамилии с помощью регулярного выражения
    #40014364
MsGuns
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем !

Вроде не новичок в программировании, а вот в эти регулярные выражения въехать никак не удается :(
Надо решить простую (наверное) задачу - проверка правильности ввода фамилии.
Правила такие:
1. Только кириллица
2. Фамилия может состоять из одного слова или из двух, разделенных "-" (тире)
3. Первая буква каждого слова - заглавная, остальные - строчные

Подскажите бестолковому как это сделать

Спасибо за любую помощь, советы, ссылки
...
Рейтинг: 0 / 0
Проверка фамилии с помощью регулярного выражения
    #40014368
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"^[А-Я][а-я]*(-[А-Я][а-я]*)?$"

Это, если фамилии из одной буквы допустимы (я когда-то работал с одним таким парнем, он кореец).
...
Рейтинг: 0 / 0
Проверка фамилии с помощью регулярного выражения
    #40014390
MsGuns
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот выражение, подсмотренное в инете:
Код: javascript
1.
var regExp = /^[А-ЯЁ][а-яё]*([-][А-ЯЁ][а-яё]*)?\s[А-ЯЁ][а-яё]*\s[А-ЯЁ][а-яё]*$/


Но так проверяется 3 слова: фамилия, имя, отчество. И работает как надо.

Но надо только фамилию или имя или отчество - все в отдельных input

Попробовал так:
Код: javascript
1.
  var regExpFam = /^[А-ЯЁ][а-яё]*([-][А-ЯЁ][а-яё]*)$/


Но не работает - все гонит в ошибку (Иванов, Иванов-Крамской и т.д.)
:(

Где косяк ?
...
Рейтинг: 0 / 0
Проверка фамилии с помощью регулярного выражения
    #40014400
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsGuns
Где косяк ?

Ты то что я написал смотрел-то? А у тебя не хватает "?" перед "$". А вот про Ё я и впрямь не подумал. Имел с этим когда-то личные проблемы, потому что у меня фамилия с "ё" - жил не тужил, и тут неожиданно выяснилось, что у меня тотально во всех документах (СНИЛС, ИНН и т.д.) стоит "е", а в паспорте "ё", пришлось все переделывать.
...
Рейтинг: 0 / 0
Проверка фамилии с помощью регулярного выражения
    #40014402
MsGuns
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор"^[А-Я][а-я]*(-[А-Я][а-я]*)?$"

Добавил Ёё и все заработало. Спасибо большое :)
...
Рейтинг: 0 / 0
Проверка фамилии с помощью регулярного выражения
    #40014409
MsGuns
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как проверить любой текст кириллицей ?

Такое вот :
Код: javascript
1.
/^[А-ЯЁа-яё]*$/


работает, но только если одно слово.

А может быть любое кол-во слов без проверки регистра плюс символы , ; . ? ! <пробел> - и т.д.

Попробовал так:
Код: javascript
1.
/^[А-ЯЁа-яё,;.?! -]*$/



Не работает :(
...
Рейтинг: 0 / 0
Проверка фамилии с помощью регулярного выражения
    #40014423
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsGuns
Не работает :(

Код: javascript
1.
/^[А-ЯЁа-яё\W]*$/.test("А как проверить любой текст кириллицей ?")
...
Рейтинг: 0 / 0
Проверка фамилии с помощью регулярного выражения
    #40014428
MsGuns
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор/^[А-ЯЁа-яё\W]*$/.test("А как проверить любой текст кириллицей ?")

Пропускает все спецсимволы (@#$%^&*), но, наверное, это правильно :)

А можно все-таки без них ?
...
Рейтинг: 0 / 0
Проверка фамилии с помощью регулярного выражения
    #40014454
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsGuns
А можно все-таки без них ?

Можно, конечно, только тогда тебе придется все "хорошие" символы явно руками перечислить xtht [....] - не забудь только whitespace добавить ('\s') и символы, которые используются в самих regexp как специальные (например '*', '?', скобки, точка и т.п.) заескейпить с помощью бекслеша '\'.
...
Рейтинг: 0 / 0
Проверка фамилии с помощью регулярного выражения
    #40014456
MsGuns
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот это
автор/^[A-Za-z\W]*$/
пропускает и кириллицу. Почему ?
...
Рейтинг: 0 / 0
Проверка фамилии с помощью регулярного выражения
    #40014459
MsGuns
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторМожно, конечно, только тогда тебе придется все "хорошие" символы явно руками перечислить xtht [....] - не забудь только whitespace добавить ('\s') и символы, которые используются в самих regexp как специальные (например '*', '?', скобки, точка и т.п.) заескейпить с помощью бекслеша '\'.

Да ну его в пень :)
И так сойдет, я думаю. Чел же видит что набирает, не ?
...
Рейтинг: 0 / 0
Проверка фамилии с помощью регулярного выражения
    #40014515
MsGuns
Привет всем !

Вроде не новичок в программировании, а вот в эти регулярные выражения въехать никак не удается :(
Надо решить простую (наверное) задачу - проверка правильности ввода фамилии.
Правила такие:
1. Только кириллица
2. Фамилия может состоять из одного слова или из двух, разделенных "-" (тире)
3. Первая буква каждого слова - заглавная, остальные - строчные

Подскажите бестолковому как это сделать

Спасибо за любую помощь, советы, ссылки

Джеффри Фридл "регулярные выражения" - лучшая.

Не надо так заморачиваться. Фамилии может и не быть, может быть только имя.
Заглавных букв может не быть или могут быть все заглавные.
Заглавные буквы расставляете сами в начале каждого слова, предварительно сделав всех маленькими.
Код: php
1.
/^[-а-яА-Я ]{2,99}$/iu


как-то так
...
Рейтинг: 0 / 0
Проверка фамилии с помощью регулярного выражения
    #40014536
MsGuns
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ссылку.
Книжку скачал. Уже читаю :)

А как на счет фильтра для латиницы ?
...
Рейтинг: 0 / 0
Проверка фамилии с помощью регулярного выражения
    #40014551
MsGuns
А как на счет фильтра для латиницы ?

это лишнее в большинстве случаев
если клиент напишет Golubev, он уже не клиент чтоли?
Или если у него на телефоне кириллица глючит, ему теперь идти в другой магазин?
отсеять латиницу можно так: [^a-zA-Z]
...
Рейтинг: 0 / 0
Проверка фамилии с помощью регулярного выражения
    #40014554
MsGuns
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторотсеять латиницу можно так: [^a-zA-Z]

Мне нужно обратное. Но если "отсеять" кириллицу, то проходят цифры.
...
Рейтинг: 0 / 0
Проверка фамилии с помощью регулярного выражения
    #40014556
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsGuns
Вот это
автор/^[A-Za-z\W]*$/

пропускает и кириллицу. Почему ?
Потому что "\W" это все кроме всех латинских букв, цифр и подчеркивания, ergo, в том числе и кирилица)
...
Рейтинг: 0 / 0
Проверка фамилии с помощью регулярного выражения
    #40014636
MsGuns
авторотсеять латиницу можно так: [^a-zA-Z]


Мне нужно обратное. Но если "отсеять" кириллицу, то проходят цифры.
MsGuns
авторотсеять латиницу можно так: [^a-zA-Z]


Мне нужно обратное. Но если "отсеять" кириллицу, то проходят цифры.
как обратное? отсеять латиницу надо или что?
для цифр добавить 0-9 перед ]
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Проверка фамилии с помощью регулярного выражения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]