Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярное выражение - проверка ввода (https://javascript.ru/forum/misc/36919-regulyarnoe-vyrazhenie-proverka-vvoda.html)

тома 01.04.2013 08:16

Регулярное выражение - проверка ввода
 
Всем привет.

Чтобы проверить соответствует ли значение шаблону установлена проверка:
<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">


Скажите пожалуйста, можно ли объединить эти две проверки, чтобы сразу при вводе удалялись запрещенные символы?

И скажите пожалуйста, на текстовые поля такие как ФИО не принято же ставить маски ввода, да?

ksa 01.04.2013 09:04

Цитата:

Сообщение от тома
на текстовые поля такие как ФИО не принято же ставить маски ввода, да?

Если есть желание - почему не поставить... :)
Например можно запретить ввод цифр (Пётр 1 тогда не прокатит) или запретить английские буквы...

ksa 01.04.2013 09:06

Цитата:

Сообщение от тома
можно ли объединить эти две проверки

Разумеется.
Напиши функцию, которая выполняет оба кода и вызывай её в тех событиях...

тома 01.04.2013 09:55

Цитата:

Сообщение от ksa (Сообщение 243644)
Разумеется.
Напиши функцию, которая выполняет оба кода и вызывай её в тех событиях...

Я не много не правильно описала что хочу...
Я хотела узнать, можно ли событие
onblur="if(!/^[А-Я][а-я]*/.test(this.value)) {alert('Неверный формат ввода'); this.value='';}"


переделать в событие onkeyup?
у меня не получается....

ksa 01.04.2013 10:06

Цитата:

Сообщение от тома
Я хотела узнать, можно ли событие
onblur="if(!/^[А-Я][а-я]*/.test(this.value)) {alert('Неверный формат ввода'); this.value='';}"

переделать в событие onkeyup?
у меня не получается....

Дык

onkeyup="if(!/^[А-Я][а-я]*/.test(this.value)) {alert('Неверный формат ввода'); this.value='';}"

тома 01.04.2013 10:55

ksa, нет:)

чтобы сразу при вводе удалялись запрещенные символы?

то есть на событие onkeyup, мне не нужно выводить alert(), а сразу сделать замену надо недоступного символа на пустое значение как в примере this.value=this.value.replace(), чтобы не допустить ввод запрещенных символов...
Или это очень сложно?

Hekumok 01.04.2013 11:08

Вот, недоступные символы сразу заменяются, что не так?
<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>

тома 01.04.2013 12:08

:) похоже я совсем не понятно объяснилась...

Hekumok, так Вы же показали тот пример который и так работает.
А мне нужно такую замену написать для шаблона:
^[А-Я][а-я]*

вот это как раз таки и не получается.

Hekumok 01.04.2013 17:19

Так? Или как? Объясните нормально, что вам нужно, что вы хотите
<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>

тома 02.04.2013 07:26

да, так... только пример то не работает, какой бы символ я не ввела - замены не происходит...

Попытаюсь еще раз объяснить:
Данный пример, не позволяет пользователю вводить в текстовое поле ничего кроме русских букв и пробела.
<input type="text" id="test"  name="test" 
	           value=""
	           onkeyup="if(/[^а-яА-Я\s]/.test(this.value))this.value=this.value.replace(/[^а-яА-Я\s]+/g,'')"
	           size="37">

Мне нужно изменить этот пример так, чтобы пользователь первым символом мог ввести только заглавную русскую букву, а все остальные символы допускается вводить только маленькими русскими или пробел.
Понятно объяснила или опять не очень? :write:


Часовой пояс GMT +3, время: 16:43.