Как да премахнете HTML ASCII кодове от низ с помощта на Javascript

Имам низ, който изграждам динамично, докато потребителят въвежда данни в текстово поле, улавям входа, докато се въвежда, и го записвам в глобална променлива, както следва:

e.g.

var uid = '';

function buildString(e) {  
    var keynum = e.keyCode ? e.keyCode : e.which; 
    uid += String.fromCharCode(keynum);  
}

Забелязвам, че низът има HTML ASCII кодове, добавени пред всеки знак, който е въведен.

e.g.

091[041)062>030RS04800546029GS

so

091 = [

041 = )

062 = >

048 = 0

и т.н.

Не искам тези кодове да присъстват в низа, има ли регулярен израз или някакъв друг метод в Javascript, който ще премахне само кодовете, без да премахне действителните, валидни числа, които са били въведени?


person kingrichard2005    schedule 23.12.2010    source източник
comment
Каква е останалата част от кода ви, защото обикновено String.fromCharCode() не връща ASCII числата, а само самия знак.   -  person parent5446    schedule 24.12.2010


Отговори (1)


Изглежда, че не използвате най-доброто събитие за това, което се опитвате да направите. Вашият код трябва да работи предимно за събитието keypress (пример), но изобщо няма да работи добре за keyup или keydown .

Но самото слушане за keypress няма да ви позволи да създадете низ от това какви клавиши са били натиснати. Например, използвайки примера по-горе, ако напиша „abcd“, след това стрелка надясно два пъти и след това „xx“, изграденият низ ще бъде „abcdxx“, където това, което се показва в текстовото поле, е „abxxcd“. Така че ще е необходима повече сложност.

Тук има дракони. За добра представа за лудостта около събитията на клавиатурата на JavaScript, този сайт има страхотна информация.

person T.J. Crowder    schedule 23.12.2010