Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Проверка: в строке только русские буквы / 16 сообщений из 16, страница 1 из 1
23.04.2007, 12:04
    #34479817
Alex_BBB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка: в строке только русские буквы
Как на JavaScript сделать проверку, что в строке только русские буквы?

Код: plaintext
alert ((/[а-я]+/.test(str)));
Не работает.

Спасибо.
...
Рейтинг: 0 / 0
23.04.2007, 18:23
    #34481524
Alex_BBB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка: в строке только русские буквы
Сделал. получилось даже кручем было задумано.

Написал функцию, используя которую можно проверять введенные символы "налету", некоторое подобие масок в C++.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
function operatedInput(inputID){
	document.getElementById(inputID).onkeypress = check;

	function check(e){
		var evt = (e) ? e : window.event;
		var code = (document.all) ? evt.keyCode:evt.charCode;
		if ((code <  1040 ) || (code >  1103 )) return false;
	}
}

operatedInput('input1');

В поле ввода с ID="input1" невозможно ввести не русскую букву.(конечно при условии что включен JavaScript)

Работает в IE, FF и Opera (в других не проверял)
...
Рейтинг: 0 / 0
24.04.2007, 06:35
    #34482138
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка: в строке только русские буквы
copy-paste - вставит что угодно
...
Рейтинг: 0 / 0
24.04.2007, 10:27
    #34482503
Alex_BBB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка: в строке только русские буквы
Блин, об этом я не подумал.
Может есть идеи?

И как все-таки с помощью регулярного выражения проверить, что в строке только русские буквы?
...
Рейтинг: 0 / 0
24.04.2007, 11:48
    #34482839
ValzoID
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка: в строке только русские буквы
Alex_BBBИ как все-таки с помощью регулярного выражения проверить, что в строке только русские буквы?

Мне тоже стало интересно. Ничего лучше пока не придумал:
Код: plaintext
1.
2.
3.
4.
5.
if (!/[a-z]+/.test(str)) {
    if (/[а-я]+/.test(str)) {
        document.write(str);
    }
}
...
Рейтинг: 0 / 0
24.04.2007, 11:52
    #34482853
PhoenixNET
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка: в строке только русские буквы
Alex_BBBБлин, об этом я не подумал.
Может есть идеи?
Проверять onBlur на input'е, onClick на баттоне, если есть. Короче не пускать с формы, пока не будут введены только русские буквы
...
Рейтинг: 0 / 0
24.04.2007, 12:02
    #34482913
@RuSHA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка: в строке только русские буквы
PhoenixNET Alex_BBBБлин, об этом я не подумал.
Может есть идеи?
Проверять onBlur на input'е, onClick на баттоне, если есть. Короче не пускать с формы, пока не будут введены только русские буквы
Аха... ещё в body поставить проверку при onMouseMove
...
Рейтинг: 0 / 0
24.04.2007, 12:05
    #34482933
Alex_BBB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка: в строке только русские буквы
to ValzoID , спасибо!

to ALL
В предыдущей функции, нельзя было стерать введенные значения (клавиша Backspace), в новой версии operatedInput это исправлено. Вот предлагаю такие зачатки системы проверки:

Пример использования:
На странице:
<input name="Name" type="text" value="" id="mask">

Вот так проверять:
operatedInput('mask');

В CSS:
.text_error{
border: 1px solid #FF0000;
}

Если в поле с id="mask" вводить не руский сомвол, то
- он не введется
- поле ввода с id="mask" выделится красной рамкой
- под полем возникнет подсказка, что вводить можно только русские буквы
При вводе верного символа (любая руская буква) выделение красной рамкой уберается, подсказка исчезает.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
function unmark2(elementID){
	document.getElementById(elementID).className='';
	var boxID = 'err_'+elementID;
	var box = document.getElementById(boxID);
	box.parentNode.removeChild(box);
}

function mark2(elementID, HTMLtex){
	var target = document.getElementById(elementID);
	var boxID = 'err_'+elementID;
	if (document.getElementById(boxID) != null) unmark2(elementID);
	target.className='text_error';
	target.insertAdjacentHTML('afterEnd', '<span id='+boxID+'><br/>'+HTMLtex+ '</span>');
}


function operatedInput(inputID){
	var input = document.getElementById(inputID);
	input.onkeypress = check;
	function check(e){
		var evt = (e) ? e : window.event;
		var code = (document.all) ? evt.keyCode:evt.charCode;
		if (code ==  0 ){return true;}
		if ((code <  1040 ) || (code >  1103 )){
			mark2(inputID,'только кирилица');
			return false;
		}
		else{unmark2(inputID);}
	}
}

Вообще есть идея сделать маскированный ввод. Это очень удобно для ввода номеров телефона, паспортов и т.п. информации.

Есть идей? Видели нечто подобное? Сообщите пожалуста.
...
Рейтинг: 0 / 0
24.04.2007, 12:28
    #34483040
PhoenixNET
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка: в строке только русские буквы
@RuSHAАха... ещё в body поставить проверку при onMouseMove
Ну нужно же как-то с копи-пастом бороться ;)
...
Рейтинг: 0 / 0
24.04.2007, 12:48
    #34483135
Alex_BBB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка: в строке только русские буквы
PhoenixNET
Ну нужно же как-то с копи-пастом бороться ;)

Вобще можно на инпуте ловить нажатие Ctrl и блокировать его.
Но как бороться если вставлять мышкой??
...
Рейтинг: 0 / 0
24.04.2007, 12:53
    #34483161
Alex_BBB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка: в строке только русские буквы
А может есть событие щелчка мышкой?
...
Рейтинг: 0 / 0
24.04.2007, 12:55
    #34483169
ValzoID
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка: в строке только русские буквы
PhoenixNETНу нужно же как-то с копи-пастом бороться ;)

Есть такое событие onpaste . Правда, в FireFox'е не работает, в Опере - не проверял.
...
Рейтинг: 0 / 0
24.04.2007, 14:09
    #34483471
PhoenixNET
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка: в строке только русские буквы
ValzoIDЕсть такое событие onpaste . Правда, в FireFox'е не работает, в Опере - не проверял.
Скорее всего не будет, ибо оно не валидное. По крайней мере здесь его нет.
...
Рейтинг: 0 / 0
24.04.2007, 15:03
    #34483696
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка: в строке только русские буквы
Alex_BBBЕсть идей? Видели нечто подобное? Сообщите пожалуста.
(втроая страница)
c ctrl+v не вставляет. Зато вставляет с shift+ins и мышью/
...
Рейтинг: 0 / 0
24.04.2007, 15:15
    #34483758
Alex_BBB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка: в строке только русские буквы
LINUXER Alex_BBBЕсть идей? Видели нечто подобное? Сообщите пожалуста.
(втроая страница)
c ctrl+v не вставляет. Зато вставляет с shift+ins и мышью/
Спасибо за ссылку.
так не трудно сделать, это всетаки не маскированный ввод
...
Рейтинг: 0 / 0
25.04.2007, 11:56
    #34485854
Alex_BBB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка: в строке только русские буквы
LINUXER
я сначала не понал к чему.. думал что ссылка на пример маскированного ввода, а теперь только допер что ссылка показывает как ctrl+v запретить.

Только в FF ctrl+v все равно работает у них :(
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Проверка: в строке только русские буквы / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]