JavaScript: Перехват Submit
На станице имеется обычная форма (method="POST") с несколькими полями ввода и кнопкой submit.
Помогите написать javascript, чтоб при нажатии на кнопку выводилось предупреждение (например в <div id="warning"></div>), если введенный текст не совпадает с регулярным выражением, иначе выполнить submit. Начало обсуждения здесь. |
Ответ: JavaScript: Перехват Submit
Там же и ответил там:
Какое именно тебе нужно регулярное выражение? Вот простейший пример без jQuery. Тут при посте формы, запускается функция по событию onsubmit. Которое проверяет если хоть одно поле имеет & - то он не пропустит запрос, и изменит класс формы, который в CSS будет обрамлен. http://jsfiddle.net/tgM7P/ |
Ответ: JavaScript: Перехват Submit
Цитата:
/^[a-z0-9]+([_.-])[a-z0-9]+$/i (проверка логина) |
Ответ: JavaScript: Перехват Submit
Цитата:
Вот такой: /^[a-z0-9]+[a-z0-9_.-]*$/i Обязует начало ника с латиницы или числа, и позволяет три знака после. Вот обновил: http://jsfiddle.net/tgM7P/1/ Проверяет если логин длиной 4 или более значка и если он валидный по выше приведённому регулярному выражению. |
Ответ: JavaScript: Перехват Submit
Моя регулярка меня устраивает больше чем твоя, ведь обязует начало и конец логина с латинского символа или цифры, а также возможность использовать символы _.- внутри.
Еще бы можно было добавить что-то вроде {3,16} для ограничения длины логина. Твоя: /^[a-z0-9]+[a-z0-9_.-]*$/i login - GOOD my.login - GOOD login. - BAD my--login - BAD _login - GOOD Моя: /^[a-z0-9]+([_.-])[a-z0-9]+$/i login - GOOD my.login - GOOD login. - GOOD my--login - GOOD _login - GOOD |
Ответ: JavaScript: Перехват Submit
Цитата:
Что-то ты намудрил. У тебя почти все BAD :) Из-за того что у тебя есть nested result - то что в скобках. И оно может вернуть true когда остальное нет. Будь осторожен тут. Вот протестируй тут: http://regexpal.com/ Если всё выделил жёлтым - значит валидно. login - BAD my.login - GOOD login. - BAD my--login - BAD _login - BAD Мой же как раз требует начало как и твой (латиница или цифра) но ему пофиг что будет далее, т.к. конец не важен. Если тебе нужно начало и конец латиница или цифра, и что угодно посередине, и ограничение от 4 до 14 символов: Код:
/^[a-z0-9][a-z0-9_.-]{2,14}[a-z0-9]$/i Код:
login |
Ответ: JavaScript: Перехват Submit
Код:
([\d\w]+[\s\-\.]*[\d\w]+){3,16} \d - число \w - печатный символ (a-z а-я) |
Ответ: JavaScript: Перехват Submit
Цитата:
Далее у тебя идёт повторение от 3 до 16 каждой комбинации в общем. Поэтому смысл делать всё это в скобках если у тебя он будет проверять повторение всей комбинации а не число символов. Проверь своё выражение на такой строке: Код:
my.login фывфыв фывфasd as dasdas daksjdf oaisdfaosiudfoaisuh dfiaush dfioaush dfoiaush dfoiaus hdfoaisu hdfoaisudh faosiud hfiuh dfiuhiuhas,d a, .2323.4 23 423 |
Ответ: JavaScript: Перехват Submit
Цитата:
остальное, да, тупанул. Но сути это не меняет. Юзайте символьные классы и будет вам чичастье. |
Ответ: JavaScript: Перехват Submit
Цитата:
|
Ответ: JavaScript: Перехват Submit
Упс, пардон.
Действительно намудрил :) (надо отоспаться). Эта регулярка /^[a-z0-9][a-z0-9_.-]{2,14}[a-z0-9]$/i более близка к тому что мне нужно (только в логине должен допускаться лишь один символ внутри). UPD: Пока что использую такое выражение: /^[a-z0-9]+[_.-]?[a-z0-9]+$/i, количество введенных символов буду проверять отдельно яваскриптом и контрольная проверка будет еще в пхп (на всякий пожарный). |
Ответ: JavaScript: Перехват Submit
Цитата:
Код:
/^[a-z0-9]+[_.-]?[a-z0-9]+$/i Но учти, что обычно не позволяют никакие -_. в логинах вообще. Ты можешь позволить 1-2 пробела если хочешь. Плюс учти, что тебе нужно проводить точно такую же валидацию на стороне сервера, т.к. front-end всё же обходится. |
Ответ: JavaScript: Перехват Submit
Заметь, что в UPD своего прошлого сообщения я написал то же самое :-D. Сошлись на мнениях.
Цитата:
Окей, с этим разобрались - вернемся к сабжу. |
Ответ: JavaScript: Перехват Submit
Цитата:
Вот тебе эксклюзивно регулярное выражение, которое проходит почти все мыслимые эмайлы основываясь стандартам (ссылка с деталями ниже): Код:
/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ |
Часовой пояс GMT +4, время: 21:28. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot