Регулярное выражение - проверка ввода
Всем привет.
Чтобы проверить соответствует ли значение шаблону установлена проверка: <input type="text" id="test2" name="test2" value="" onblur="if(!/^[А-Я][а-я]*/.test(this.value)) {alert('Неверный формат ввода'); this.value='';}" size="37"> Чтобы запретить ввод не допускаемых символов: <input type="text" id="test" name="test" value="" onkeyup="if(/[^а-яА-Я\s]/.test(this.value))this.value=this.value.replace(/[^а-яА-Я\s]+/g,'')" size="37"> Скажите пожалуйста, можно ли объединить эти две проверки, чтобы сразу при вводе удалялись запрещенные символы? И скажите пожалуйста, на текстовые поля такие как ФИО не принято же ставить маски ввода, да? |
Цитата:
Например можно запретить ввод цифр (Пётр 1 тогда не прокатит) или запретить английские буквы... |
Цитата:
Напиши функцию, которая выполняет оба кода и вызывай её в тех событиях... |
Цитата:
Я хотела узнать, можно ли событие onblur="if(!/^[А-Я][а-я]*/.test(this.value)) {alert('Неверный формат ввода'); this.value='';}" переделать в событие onkeyup? у меня не получается.... |
Цитата:
onkeyup="if(!/^[А-Я][а-я]*/.test(this.value)) {alert('Неверный формат ввода'); this.value='';}" |
ksa, нет:)
чтобы сразу при вводе удалялись запрещенные символы? то есть на событие onkeyup, мне не нужно выводить alert(), а сразу сделать замену надо недоступного символа на пустое значение как в примере this.value=this.value.replace(), чтобы не допустить ввод запрещенных символов... Или это очень сложно? |
Вот, недоступные символы сразу заменяются, что не так?
<input type="text" id="test" name="test" value="" size="37"> <script> function replace() { this.value = this.value.replace(/[^а-яА-Я\s]+/g,'') ; } ; document.getElementById("test").onkeyup = replace ; </script> |
:) похоже я совсем не понятно объяснилась...
Hekumok, так Вы же показали тот пример который и так работает. А мне нужно такую замену написать для шаблона: ^[А-Я][а-я]* вот это как раз таки и не получается. |
Так? Или как? Объясните нормально, что вам нужно, что вы хотите
<input type="text" id="test" name="test" value="" size="37"> <script> function replace() { this.value = this.value.replace(/^[А-Я][а-я]*/g,'') ; } ; document.getElementById("test").onkeyup = replace ; </script> |
да, так... только пример то не работает, какой бы символ я не ввела - замены не происходит...
Попытаюсь еще раз объяснить: Данный пример, не позволяет пользователю вводить в текстовое поле ничего кроме русских букв и пробела. <input type="text" id="test" name="test" value="" onkeyup="if(/[^а-яА-Я\s]/.test(this.value))this.value=this.value.replace(/[^а-яА-Я\s]+/g,'')" size="37"> Мне нужно изменить этот пример так, чтобы пользователь первым символом мог ввести только заглавную русскую букву, а все остальные символы допускается вводить только маленькими русскими или пробел. Понятно объяснила или опять не очень? :write: |
Так что ли?
<input type="text" id="test" name="test" value="" size="37"> <script> function replace() { if(this.value.length==1) { if(/^[^А-ЯЁ]$/.test(this.value)) this.value = "" ; } else if(/[^а-яё ]/.test(this.value[this.value.length-1])) this.value = this.value.slice(0,-1) ; } ; document.getElementById("test").onkeyup = replace ; </script> |
Цитата:
|
Цитата:
|
Да, супер! То, что нужно!
Hekumok, благодарю Вас! спасибо, что научили)))))))))) |
а у меня разрешает ввести почему-то только 1й символ и все((
|
Предложу такой вариант...
<input type="text" id="test" name="test" value="" size="37"> <script> function replace() { var val=this.value if (!/^[А-ЯЁ][а-яё\s]+$/.test(val)) { this.value=val.replace(/(^[а-яё])|[^А-ЯЁа-яё\s]/g,''); }; }; document.getElementById("test").onkeyup = replace ; </script> |
Цитата:
Предложу такой вариант... <input id="test" name="test" size="37" oninput="replace(this)"> <script> function replace(input) { input.value = input.value.split(/((?:[А-ЯЁ][а-яё]*\s*)+)/, 2)[1] || ""; }; </script> |
Цитата:
|
Цитата:
|
Автор хотела, чтобы не вводились запрещенные символы.
Цитата:
|
Часовой пояс GMT +3, время: 20:17. |