Есть поля "Логин" и "Пароль", куда не должны попадать символы кириллицы. Использую:
if(preg_match("/^([a-z,0-9])+@([a-z,0-9])+(.([a-z,0-9])+)+$/", $mail))
{
---
Вопрос следующий. Существует ли возможность ВООБЩЕ запретить ввод русских букв в поле?
Как запретить ввод кириллицы в текстовое поле?
15 ноября 2008, 20:09
Автор: Azazel
|
|
burМожно яваскриптом вырезать кириллицу по факту её ввода в текстовое поле, вот пример:<script type="text/javascript">
function withoutCyr(input) { var value = input.value; var re = /а|б|в|г|д|е|ё|ж|з|и|ё|к|л|м|н|о|п|р|с|т|у|ф|х|ц|ч|ш|щ|ъ|ы|ь|э|ю|я/gi; if (re.test(value)) { value = value.replace(re, ''); input.value = value; } } </script> <input type="text" onkeyup="return withoutCyr(this);" /> Fastcoder.org — портал для JavaScrpt-программистов
|
16.11.2008, 16:57 Ответить |
|
NO USERPIC
|
SignА почему же не onkeypress ? ; ) |
16.11.2008, 18:08 Ответить |
|
|
burМожно и keypress.Fastcoder.org — портал для JavaScrpt-программистов
|
16.11.2008, 22:18 Ответить |
|
NO USERPIC
|
AzazelСпасибо, первый вариант устроил полностью. Работает как надо. Вот только буковки одной не хватало:). |
16.11.2008, 20:30 Ответить |
|
NO USERPIC
|
rgbeastбуквы "й"? |
16.11.2008, 21:32 Ответить |
|
NO USERPIC
|
Signпрошу прощения что не совсем по теме, но использоватьif(preg_match("/^([a-z,0-9])+@([a-z,0-9])+(.([a-z,0-9])+)+$/", $mail)) для отсечения кириллицы в логине или пароле - это грусно) Многие мейлы, впрочем как и пароли не пройдут... Не будет ли удобней Вашим юзерам если для отсечения недопустимых символов в логине и для проверки формата мейла Вы будете использовать разные регекспы? Кстати, недопустимые символы в данном случае это не только кириллица ; ) Можно использовать например такие шаблоны Недопустимые символы для мейла : /[^-_a-zA-Z\d\.@]/ Формат мейла: /^[^@\s\/\\]+@[^@\s\/\\]+\.[a-z]{2,}$/i А вот пароль лучше вообще не трогать, а просто делать из него хеш. А теперь по теме: Первое решение вызывает перерисовку поля ввода, что кажется не очень эстетично. Решение с onkeypress в чистом виде совсем не лаконично из-за предполагаемых требований кросбраузерности. Возможно Вам может подойти решение с jQuery: <form id="login_form"> <input type="text" class="asci_only mail" name="login" /> <input type="password" name="password" /> <input type="submit" /> </form> <script type="text/javascript"> $(document).ready( function(){ $('input.asci_only').keypress( function(e) { return (e.keyCode) ? true : /[\w\d@\.]/.test(String.fromCharCode(e.charCode)) }); $('input.mail').change( function() { if(!validateEmail(this.value)){ alert('Введите email') this.focus() return false } return true }); $('#login_form').submit( function(){ return $('input.mail').change() }) }) function validateEmail(email){ return (email.search(/^[^@\s]+@[^@\s]+\.[^@\s]{2,}$/) == 0) ? true : false }
</script> |
16.11.2008, 21:44 Ответить |
|
|
burНасчет регэкспов и допустимости тех или иных символов в полях - замечание верное.А вот задача "запретить ввод кириллицы" в вашем jQuery-скрипте не решена. Она не такая тривиальная, проверьте свой пример в ИЕ. Fastcoder.org — портал для JavaScrpt-программистов
|
16.11.2008, 23:16 Ответить |
|
NO USERPIC
|
SignУпс... не досмотрелвот: $('input.asci_only').keypress( function(e) {
if($.browser.msie) return isAsci(e.keyCode) else return (e.keyCode) ? true : isAsci(e.charCode) }); function isAsci(cCode){ return /[a-zA-Z0-9@\.]/.test(String.fromCharCode(cCode)) } |
17.11.2008, 10:29 Ответить |
|
|
burДа, в таком виде этот скрипт - идеальное решение для Azazel, спасибо :-)Fastcoder.org — портал для JavaScrpt-программистов
|
17.11.2008, 12:50 Ответить |
|
NO USERPIC
|
AzazelДа... А я наивный думал что жизнь-вещь не сложная. На счёт первого варианта - можно просто перетаскивать русскоязычный текст в поле. Незначительно, но все равно обидно. Буду пробовать вариант №2. Благо есть выбор./ rgbeast буквы "й"? - Вы снова правы |
16.11.2008, 22:00 Ответить |
|
NO USERPIC
|
SignВставку из буфера обмена Вы можете отслеживать в IE и в FF начиная с 3.0Поэтому проще просто проверять форму перед отправкой, ведь Вам всё равно придётся это делать |
17.11.2008, 13:06 Ответить |
© 2007—2012 webew.ru, связаться: x собака webew.ru
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.