Как удалить коды 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