Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   onkeypress. Определить что введен символ и получить его из кода (https://javascript.ru/forum/misc/33011-onkeypress-opredelit-chto-vveden-simvol-i-poluchit-ego-iz-koda.html)

Vit 07.11.2012 13:01

onkeypress. Определить что введен символ и получить его из кода
 
Всем доброго. Мне нужно в обработчике onkeypress определить что жмакнута клавиша с лат-рус символом или цифрой или одним из допсимволов типа подчеркиваия, или знака доллара, пробела и т.д.
Т.е. отсеять управляющие символы типа стрелочек.
Пробую вот так:
Код:

function AsChar(e){
var keynum
        if(window.event){keynum = e.keyCode} else if(e.which){keynum = e.which}
        var reg=/\W/gi;
        if(reg.test(keynum)){
        return String.fromCharCode(keynum);
        } else {
        return '';
        }
}

Однако регулярка не отрабатывает - не распознает что введена буква или цифра.
Где я ошибся и возможно ли по другому проверять?

dmitriymar 07.11.2012 13:39

e.which , e.keyCode возвращают код нажатой а не символ нажатой.

Vit 07.11.2012 15:34

Ну а если это код символа алфавита? Как мне заставить функцию понять что нажата клавиша алфавита?

dmitriymar 07.11.2012 15:36

Цитата:

Сообщение от Vit
Как мне заставить функцию понять что нажата клавиша алфавита

можно отслеживать коды, а можно получить символ с кодом .

Vit 07.11.2012 17:28

Ага, последний пост натолкнул на идею.
function AsChar(e){
var keynum
	if(window.event){keynum = e.keyCode} else if(e.which){keynum = e.which}
	var reg=/\W/gi;
	var c=String.fromCharCode(keynum)
	if(reg.test(c)){
	 return c;
	} else {
	 return '';
	}
}

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

boy_cow 07.11.2012 17:42

window.onkeyup=function(e){
	var code = e.which ? e.which : e.keyCode;
	alert( String.fromCharCode(code) );
}

dmitriymar 08.11.2012 07:00

Ага, последний пост натолкнул на идею.
Мне тебя жаль, если готовое решение тебя наталкивает на идею....

Vit 10.11.2012 21:29

Цитата:

Мне тебя жаль, если готовое решение тебя наталкивает на идею....
Всмысле? Почему жаль?

Vit 11.11.2012 00:37

Да ладно. Не все так плохо. Решения без идей - ничто, даже если идея ничтожна.

dmitriymar 11.11.2012 00:42

Цитата:

Сообщение от Vit
Решения без идей - ничто, даже если идея ничтожна.

идея на решении как решить повторив решение приведшее к идее как решить не изменяя решение которое привело к идее.... -это абсурд


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