Форум программистов, компьютерный форум, киберфорум
JavaScript: RegExp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
5 / 5 / 3
Регистрация: 19.09.2013
Сообщений: 303

Поиск соответствия содержания текстового поля с регулярным выражением не абсолютно

26.07.2016, 15:39. Показов 1234. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Помогите разобраться с регулярными выражениями, никогда до конца их не понимал. Необходимо в поле ввести ФИО через пробелы в неограниченном количестве, да так чтобы по keyUp'у происходила сразу проверка на правильность ввода. Буквы только русские, возможны дефисы в случае если имя, фамилия имеют двойные, тройные имена, фамилии. Составил регулярное:
JavaScript
1
/([А-ЯЁ]{1}[-]?[а-яё]*){1,3}$/
Во-первых, оно не до конца у меня верное (прошу помощи в составлении верного), во-вторых, в дальнейшем я использую метод search() и выпадают две ошибки: 1. seacrh ищет первое попадание с регулярным выражением, соответственно перед совпадением и после можно писать все что угодно, а результат тем не менее будет не ошибочным. 2. В случае, если я начинаю первое слово скажем "Волод47567++я", то результат выводит естественно ошибочным, но если я скажем напишу норм все три слова, затем вернусь к первому и начну его исправлять в подобное ошибочное слово, то ошибки не выдаст, почему?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.07.2016, 15:39
Ответы с готовыми решениями:

с регулярным выражением.
Имеем текст youtube.com/watch?v=LOZuxwVk7TU&ob=av2em нужно получить то что находится между /watch?v= и & в нашем случае...

Исправить код с регулярным выражением
Этот код нужно изменть. Задача: -Логин: Одна заглавная английская буква, остальные строчные. -Пароль: должны быть Прописные,...

Не вырезается слово регулярным выражением
Здравствуйте. Есть строка такого типа: ...Цвет: Белый,... ...Цвет: Рифт белый,... вобщем вариаций много... единственные...

6
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
27.07.2016, 11:07
JavaScript
1
/^(?:[А-ЯЁ][а-яё]+(?:-[А-ЯЁ][а-яё]+)?(?(?!\s*?$)\s+)){2,3}$/
Добавлено через 2 минуты
Тройные имена не учитываются. Если надо, чтобы учитывались, то тогда так
JavaScript
1
/^(?:[А-ЯЁ][а-яё]+(?:-[А-ЯЁ][а-яё]+){0,2}(?(?!\s*?$)\s+)){2,3}$/
0
5 / 5 / 3
Регистрация: 19.09.2013
Сообщений: 303
27.07.2016, 11:24  [ТС]
KOPOJI, KOPOJI, а знак вопроса не лишний у вас? который идет после открывающей скобки во второй половине выражения.то есть, верно скорее всего так:
JavaScript
1
/^(?:[А-ЯЁ][а-яё]+(?:-[А-ЯЁ][а-яё]+)?(?!\s*?$)\s+){2,3}$/
в ином случае мне ошибку выдает компилятор. Но в этом случае не работает. Поясните, пожалуйста, первый знак вопроса что делает в вашем выражении. и двоеточие, его я вообще нигде найти не могу что оно значит. и как быть со второй частью вопроса: вместо search() мне что использовать в таких случаях, чтобы проблем не было?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
27.07.2016, 13:12
ну да, я забыл, что в JS регулярки наполовину убогие, не работают условные выражения в регулярках, как и некоторые другие вещи.. Тогда так
JavaScript
1
/^(?:[А-ЯЁ][а-яё]+(?:-[А-ЯЁ][а-яё]+){0,2}\s*?){2,3}$/
Но в таком случае пробелы в конце строки проверяйте в ручную.
Пример того, про что я говорю - https://jsfiddle.net/0scukyL6/

можно и без ручной проверки, но тогда регулярка станет в три раза длинее, чего не хочется.. Но если что:
JavaScript
1
/^[А-ЯЁ][а-яё]+(?:-[А-ЯЁ][а-яё]+){0,2}\s+[А-ЯЁ][а-яё]+(?:-[А-ЯЁ][а-яё]+){0,2}(?:\s+[А-ЯЁ][а-яё]+(?:-[А-ЯЁ][а-яё]+){0,2})?$/
0
5 / 5 / 3
Регистрация: 19.09.2013
Сообщений: 303
27.07.2016, 13:33  [ТС]
KOPOJI, Что означает это
JavaScript
1
?:
и
JavaScript
1
?:-
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
27.07.2016, 16:01
(?:......) - группировка без запоминания.
1
5 / 5 / 3
Регистрация: 19.09.2013
Сообщений: 303
27.07.2016, 16:15  [ТС]
KOPOJI, Спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.07.2016, 16:15
Помогаю со студенческими работами здесь

Отличить две ссылки регулярным выражением
JQuery.expr.regex = function(elem, index, match) { var matchParams = match.split(','), validLabels = /^(data|css):/, ...

Сравнении введённых данных с регулярным выражением
Всем привет Сделал проверку данных формы Сначала всё было нормально. Потом на вот этой строчке код останавливался и форма просто...

Поиск регулярным выражением единственного соответствия
Есть регулярка <div class=\"q\">*<hr class=\"iq\">, но она ищет до последнего <hr class=\"iq\">, то есть получается лишь одно соответствие,...

Задача по регулярным выражением, соответствия
Всем привет. Не могу понять задачу, что конкретно требуется. Т.е. надо Т.е. требуется строка с фамилией и именем, и если совпадает имя,...

Ошибка при проверке поля регулярным выражением
Приветствую, возникла проблема при проверке #email регекспом, в любом случае выдает ошибку. $(function(){ ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru