Запустите команду для входа в БД
# mysql -u root -p
Введите пароль для пользователя. Затем создайте новую БД
mysql> create database MynewDB;
mysql> exit
И сделайте exit.Afetr that.Run эта команда
# mysql -u root -p MynewDB < MynewDB.sql
Затем введите в db и введите
mysql> show databases;
mysql> use MynewDB;
mysql> show tables;
mysql> exit
Thats it ........ Ваш дамп будет восстановлен из одной базы данных в другую БД
Или существует альтернативный способ восстановления дампа
# mysql -u root -p
Затем введите в db и введите
mysql> create database MynewDB;
mysql> show databases;
mysql> use MynewDB;
mysql> source MynewDB.sql;
mysql> show tables;
mysql> exit
Возможно, я не понял вопрос правильно, но не можете ли вы использовать keyup
, если хотите захватить оба входа?
$("input").bind("keyup",function(e){
var value = this.value + String.fromCharCode(e.keyCode);
});
Недавно я написал модуль под названием keysight , который переводит события keypress
, keydown
и keyup
в символы и клавиши соответственно.
Пример:
element.addEventListener("keydown", function(event) {
var character = keysight(event).char
})
В ответ на эту проблему я просто написал плагин jQuery: https://github.com/bpeacock/key-to-charCode/
Немного вниз и грязный и может быть лучше интегрирован в jQuery, но это начало.
Существует относительно мало ключевых кодов, поэтому я просто перечислял все соответствующие значения в статическом массиве, поэтому я мог просто преобразовать число 65
в A
, используя keyboardMap[65]
Не все коды клавиш отображаются на печатный символ, поэтому возвращается другая идентифицирующая строка.
Возможно, вам потребуется изменить массив в соответствии с вашими потребностями и просто вернуть пустой строки для всех персонажей, которые вы не хотите переводить. Следующий массив позволяет мне быстро и надежно определять, какой ключ был нажат в любой среде. Наслаждайтесь!
// names of known key codes (0-255)
var keyboardMap = [
"", // [0]
"", // [1]
"", // [2]
"CANCEL", // [3]
"", // [4]
"", // [5]
"HELP", // [6]
"", // [7]
"BACK_SPACE", // [8]
"TAB", // [9]
"", // [10]
"", // [11]
"CLEAR", // [12]
"ENTER", // [13]
"ENTER_SPECIAL", // [14]
"", // [15]
"SHIFT", // [16]
"CONTROL", // [17]
"ALT", // [18]
"PAUSE", // [19]
"CAPS_LOCK", // [20]
"KANA", // [21]
"EISU", // [22]
"JUNJA", // [23]
"FINAL", // [24]
"HANJA", // [25]
"", // [26]
"ESCAPE", // [27]
"CONVERT", // [28]
"NONCONVERT", // [29]
"ACCEPT", // [30]
"MODECHANGE", // [31]
"SPACE", // [32]
"PAGE_UP", // [33]
"PAGE_DOWN", // [34]
"END", // [35]
"HOME", // [36]
"LEFT", // [37]
"UP", // [38]
"RIGHT", // [39]
"DOWN", // [40]
"SELECT", // [41]
"PRINT", // [42]
"EXECUTE", // [43]
"PRINTSCREEN", // [44]
"INSERT", // [45]
"DELETE", // [46]
"", // [47]
"0", // [48]
"1", // [49]
"2", // [50]
"3", // [51]
"4", // [52]
"5", // [53]
"6", // [54]
"7", // [55]
"8", // [56]
"9", // [57]
"COLON", // [58]
"SEMICOLON", // [59]
"LESS_THAN", // [60]
"EQUALS", // [61]
"GREATER_THAN", // [62]
"QUESTION_MARK", // [63]
"AT", // [64]
"A", // [65]
"B", // [66]
"C", // [67]
"D", // [68]
"E", // [69]
"F", // [70]
"G", // [71]
"H", // [72]
"I", // [73]
"J", // [74]
"K", // [75]
"L", // [76]
"M", // [77]
"N", // [78]
"O", // [79]
"P", // [80]
"Q", // [81]
"R", // [82]
"S", // [83]
"T", // [84]
"U", // [85]
"V", // [86]
"W", // [87]
"X", // [88]
"Y", // [89]
"Z", // [90]
"OS_KEY", // [91] Windows Key (Windows) or Command Key (Mac)
"", // [92]
"CONTEXT_MENU", // [93]
"", // [94]
"SLEEP", // [95]
"NUMPAD0", // [96]
"NUMPAD1", // [97]
"NUMPAD2", // [98]
"NUMPAD3", // [99]
"NUMPAD4", // [100]
"NUMPAD5", // [101]
"NUMPAD6", // [102]
"NUMPAD7", // [103]
"NUMPAD8", // [104]
"NUMPAD9", // [105]
"MULTIPLY", // [106]
"ADD", // [107]
"SEPARATOR", // [108]
"SUBTRACT", // [109]
"DECIMAL", // [110]
"DIVIDE", // [111]
"F1", // [112]
"F2", // [113]
"F3", // [114]
"F4", // [115]
"F5", // [116]
"F6", // [117]
"F7", // [118]
"F8", // [119]
"F9", // [120]
"F10", // [121]
"F11", // [122]
"F12", // [123]
"F13", // [124]
"F14", // [125]
"F15", // [126]
"F16", // [127]
"F17", // [128]
"F18", // [129]
"F19", // [130]
"F20", // [131]
"F21", // [132]
"F22", // [133]
"F23", // [134]
"F24", // [135]
"", // [136]
"", // [137]
"", // [138]
"", // [139]
"", // [140]
"", // [141]
"", // [142]
"", // [143]
"NUM_LOCK", // [144]
"SCROLL_LOCK", // [145]
"WIN_OEM_FJ_JISHO", // [146]
"WIN_OEM_FJ_MASSHOU", // [147]
"WIN_OEM_FJ_TOUROKU", // [148]
"WIN_OEM_FJ_LOYA", // [149]
"WIN_OEM_FJ_ROYA", // [150]
"", // [151]
"", // [152]
"", // [153]
"", // [154]
"", // [155]
"", // [156]
"", // [157]
"", // [158]
"", // [159]
"CIRCUMFLEX", // [160]
"EXCLAMATION", // [161]
"DOUBLE_QUOTE", // [162]
"HASH", // [163]
"DOLLAR", // [164]
"PERCENT", // [165]
"AMPERSAND", // [166]
"UNDERSCORE", // [167]
"OPEN_PAREN", // [168]
"CLOSE_PAREN", // [169]
"ASTERISK", // [170]
"PLUS", // [171]
"PIPE", // [172]
"HYPHEN_MINUS", // [173]
"OPEN_CURLY_BRACKET", // [174]
"CLOSE_CURLY_BRACKET", // [175]
"TILDE", // [176]
"", // [177]
"", // [178]
"", // [179]
"", // [180]
"VOLUME_MUTE", // [181]
"VOLUME_DOWN", // [182]
"VOLUME_UP", // [183]
"", // [184]
"", // [185]
"SEMICOLON", // [186]
"EQUALS", // [187]
"COMMA", // [188]
"MINUS", // [189]
"PERIOD", // [190]
"SLASH", // [191]
"BACK_QUOTE", // [192]
"", // [193]
"", // [194]
"", // [195]
"", // [196]
"", // [197]
"", // [198]
"", // [199]
"", // [200]
"", // [201]
"", // [202]
"", // [203]
"", // [204]
"", // [205]
"", // [206]
"", // [207]
"", // [208]
"", // [209]
"", // [210]
"", // [211]
"", // [212]
"", // [213]
"", // [214]
"", // [215]
"", // [216]
"", // [217]
"", // [218]
"OPEN_BRACKET", // [219]
"BACK_SLASH", // [220]
"CLOSE_BRACKET", // [221]
"QUOTE", // [222]
"", // [223]
"META", // [224]
"ALTGR", // [225]
"", // [226]
"WIN_ICO_HELP", // [227]
"WIN_ICO_00", // [228]
"", // [229]
"WIN_ICO_CLEAR", // [230]
"", // [231]
"", // [232]
"WIN_OEM_RESET", // [233]
"WIN_OEM_JUMP", // [234]
"WIN_OEM_PA1", // [235]
"WIN_OEM_PA2", // [236]
"WIN_OEM_PA3", // [237]
"WIN_OEM_WSCTRL", // [238]
"WIN_OEM_CUSEL", // [239]
"WIN_OEM_ATTN", // [240]
"WIN_OEM_FINISH", // [241]
"WIN_OEM_COPY", // [242]
"WIN_OEM_AUTO", // [243]
"WIN_OEM_ENLW", // [244]
"WIN_OEM_BACKTAB", // [245]
"ATTN", // [246]
"CRSEL", // [247]
"EXSEL", // [248]
"EREOF", // [249]
"PLAY", // [250]
"ZOOM", // [251]
"", // [252]
"PA1", // [253]
"WIN_OEM_CLEAR", // [254]
"" // [255]
];
Примечание: Важное значение позиции каждого значения в массиве выше.
blockquote>""
являются заполнителями для кодов с неизвестными значениями.Попробуйте следующий фрагмент кода, используя этот подход поиска статического массива ...
var keyCodes = []; $("#reset").click(function() { keyCodes = []; $("#in").val(""); $("#key-codes").html("var keyCodes = [ ];"); $("#key-names").html("var keyNames = [ ];"); }); $(document).keydown(function(e) { keyCodes.push(e.which); updateOutput(); }); function updateOutput() { var kC = "var keyCodes = [ "; var kN = "var keyNames = [ "; var len = keyCodes.length; for (var i = 0; i < len; i++) { kC += keyCodes[i]; kN += "'"+keyboardMap[keyCodes[i]]+"'"; if (i !== (len - 1)) { kC += ", "; kN += ", "; } } kC += " ];"; kN += " ];"; $("#key-codes").html(kC); $("#key-names").html(kN); } var keyboardMap = [ "", // [0] "", // [1] "", // [2] "CANCEL", // [3] "", // [4] "", // [5] "HELP", // [6] "", // [7] "BACK_SPACE", // [8] "TAB", // [9] "", // [10] "", // [11] "CLEAR", // [12] "ENTER", // [13] "ENTER_SPECIAL", // [14] "", // [15] "SHIFT", // [16] "CONTROL", // [17] "ALT", // [18] "PAUSE", // [19] "CAPS_LOCK", // [20] "KANA", // [21] "EISU", // [22] "JUNJA", // [23] "FINAL", // [24] "HANJA", // [25] "", // [26] "ESCAPE", // [27] "CONVERT", // [28] "NONCONVERT", // [29] "ACCEPT", // [30] "MODECHANGE", // [31] "SPACE", // [32] "PAGE_UP", // [33] "PAGE_DOWN", // [34] "END", // [35] "HOME", // [36] "LEFT", // [37] "UP", // [38] "RIGHT", // [39] "DOWN", // [40] "SELECT", // [41] "PRINT", // [42] "EXECUTE", // [43] "PRINTSCREEN", // [44] "INSERT", // [45] "DELETE", // [46] "", // [47] "0", // [48] "1", // [49] "2", // [50] "3", // [51] "4", // [52] "5", // [53] "6", // [54] "7", // [55] "8", // [56] "9", // [57] "COLON", // [58] "SEMICOLON", // [59] "LESS_THAN", // [60] "EQUALS", // [61] "GREATER_THAN", // [62] "QUESTION_MARK", // [63] "AT", // [64] "A", // [65] "B", // [66] "C", // [67] "D", // [68] "E", // [69] "F", // [70] "G", // [71] "H", // [72] "I", // [73] "J", // [74] "K", // [75] "L", // [76] "M", // [77] "N", // [78] "O", // [79] "P", // [80] "Q", // [81] "R", // [82] "S", // [83] "T", // [84] "U", // [85] "V", // [86] "W", // [87] "X", // [88] "Y", // [89] "Z", // [90] "OS_KEY", // [91] Windows Key (Windows) or Command Key (Mac) "", // [92] "CONTEXT_MENU", // [93] "", // [94] "SLEEP", // [95] "NUMPAD0", // [96] "NUMPAD1", // [97] "NUMPAD2", // [98] "NUMPAD3", // [99] "NUMPAD4", // [100] "NUMPAD5", // [101] "NUMPAD6", // [102] "NUMPAD7", // [103] "NUMPAD8", // [104] "NUMPAD9", // [105] "MULTIPLY", // [106] "ADD", // [107] "SEPARATOR", // [108] "SUBTRACT", // [109] "DECIMAL", // [110] "DIVIDE", // [111] "F1", // [112] "F2", // [113] "F3", // [114] "F4", // [115] "F5", // [116] "F6", // [117] "F7", // [118] "F8", // [119] "F9", // [120] "F10", // [121] "F11", // [122] "F12", // [123] "F13", // [124] "F14", // [125] "F15", // [126] "F16", // [127] "F17", // [128] "F18", // [129] "F19", // [130] "F20", // [131] "F21", // [132] "F22", // [133] "F23", // [134] "F24", // [135] "", // [136] "", // [137] "", // [138] "", // [139] "", // [140] "", // [141] "", // [142] "", // [143] "NUM_LOCK", // [144] "SCROLL_LOCK", // [145] "WIN_OEM_FJ_JISHO", // [146] "WIN_OEM_FJ_MASSHOU", // [147] "WIN_OEM_FJ_TOUROKU", // [148] "WIN_OEM_FJ_LOYA", // [149] "WIN_OEM_FJ_ROYA", // [150] "", // [151] "", // [152] "", // [153] "", // [154] "", // [155] "", // [156] "", // [157] "", // [158] "", // [159] "CIRCUMFLEX", // [160] "EXCLAMATION", // [161] "DOUBLE_QUOTE", // [162] "HASH", // [163] "DOLLAR", // [164] "PERCENT", // [165] "AMPERSAND", // [166] "UNDERSCORE", // [167] "OPEN_PAREN", // [168] "CLOSE_PAREN", // [169] "ASTERISK", // [170] "PLUS", // [171] "PIPE", // [172] "HYPHEN_MINUS", // [173] "OPEN_CURLY_BRACKET", // [174] "CLOSE_CURLY_BRACKET", // [175] "TILDE", // [176] "", // [177] "", // [178] "", // [179] "", // [180] "VOLUME_MUTE", // [181] "VOLUME_DOWN", // [182] "VOLUME_UP", // [183] "", // [184] "", // [185] "SEMICOLON", // [186] "EQUALS", // [187] "COMMA", // [188] "MINUS", // [189] "PERIOD", // [190] "SLASH", // [191] "BACK_QUOTE", // [192] "", // [193] "", // [194] "", // [195] "", // [196] "", // [197] "", // [198] "", // [199] "", // [200] "", // [201] "", // [202] "", // [203] "", // [204] "", // [205] "", // [206] "", // [207] "", // [208] "", // [209] "", // [210] "", // [211] "", // [212] "", // [213] "", // [214] "", // [215] "", // [216] "", // [217] "", // [218] "OPEN_BRACKET", // [219] "BACK_SLASH", // [220] "CLOSE_BRACKET", // [221] "QUOTE", // [222] "", // [223] "META", // [224] "ALTGR", // [225] "", // [226] "WIN_ICO_HELP", // [227] "WIN_ICO_00", // [228] "", // [229] "WIN_ICO_CLEAR", // [230] "", // [231] "", // [232] "WIN_OEM_RESET", // [233] "WIN_OEM_JUMP", // [234] "WIN_OEM_PA1", // [235] "WIN_OEM_PA2", // [236] "WIN_OEM_PA3", // [237] "WIN_OEM_WSCTRL", // [238] "WIN_OEM_CUSEL", // [239] "WIN_OEM_ATTN", // [240] "WIN_OEM_FINISH", // [241] "WIN_OEM_COPY", // [242] "WIN_OEM_AUTO", // [243] "WIN_OEM_ENLW", // [244] "WIN_OEM_BACKTAB", // [245] "ATTN", // [246] "CRSEL", // [247] "EXSEL", // [248] "EREOF", // [249] "PLAY", // [250] "ZOOM", // [251] "", // [252] "PA1", // [253] "WIN_OEM_CLEAR", // [254] "" // [255] ];
#key-codes, #key-names { font-family: courier, serif; font-size: 1.2em; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <input id="in" placeholder="Type here..." /> <button id="reset">Reset</button> <br/> <br/> <div id="key-codes">var keyCodes = [ ];</div> <div id="key-names">var keyNames = [ ];</div>
Коды, на которые стоит обратить внимание
Буквы AZ: (65-90)
keyboardMap[65]; // A ... keyboardMap[90]; // Z
Цифры 0-9: (48-57)
keyboardMap[48]; // 0 ... keyboardMap[57]; // 9
Number Pad 0-9: (96-105)
keyboardMap[96]; // NUMPAD0 ... keyboardMap[105]; // NUMPAD9
Клавиши со стрелками: (37-40)
keyboardMap[37]; // LEFT keyboardMap[38]; // UP keyboardMap[39]; // RIGHT keyboardMap[40]; // DOWN
Клавиша вкладок: (9)
keyboardMap[9]; // TAB
Введите ключ: (13)
keyboardMap[13]; // ENTER
Клавиша пробела: (32)
keyboardMap[32]; // SPACE
Специфический ключ ОС (91) Ключ Windows (Windows) или Command Key (Mac)
keyboardMap[91]; // OS_KEY
Клавиша Alt: (18)
keyboardMap[18]; // ALT
Клавиша управления: (17)
keyboardMap[17]; // CONTROL
Клавиша переключения: (16)
keyboardMap[16]; // SHIFT
Кнопка блокировки крышки: (20)
keyboardMap[20]; // CAPS_LOCK
Я знаю, что это старый вопрос, но сегодня я столкнулся с этим поиском предварительно упакованного решения этой проблемы и не нашел ничего, что действительно соответствовало моим потребностям.
Вот решение (только на английском языке), которое правильно поддерживает верхний регистр (сдвинутый), нижний регистр, пунктуацию, цифровую клавиатуру и т. д.
Это также позволяет просто и прямолинейно идентификация - и реакция на - непечатаемые ключи, такие как ESC, стрелки, функциональные клавиши и т. д.
https://jsfiddle.net/5hhu896g/1/
keyboardCharMap and keyboardNameMap are the key to making this work
Спасибо DaveAlger за то, что вы меня немного набрали - и много открытий! - путем предоставления массива с именованным ключом.
По моему опыту String.fromCharCode(e.keyCode)
ненадежна. String.fromCharCode
ожидает кодировки unicode в качестве аргумента; e.keyCode
возвращает коды кода javascript. Коды javascript и кодовые обозначения юникода - это , а не то же самое! В частности, клавиши номерной панели возвращают разные keycode
из обычных цифровых клавиш (поскольку они являются разными клавишами), в то время как тот же keycode
возвращается как для букв upper
, так и lowercase
(вы нажали ту же клавишу в обоих случаев), несмотря на то, что они имеют разные charcodes
.
Например, обычная цифровая клавиша 1 генерирует событие с keycode
49, в то время как клавиша 1 цифровой клавиатуры (с включенным Numlock) генерирует keycode
97. Используется с String.fromCharCode
, мы получаем следующее:
String.fromCharCode(49) returns "1"
String.fromCharCode(97) returns "a"
String.fromCharCode
ожидает кодировки Unicode, а не коды javascript. Ключ a генерирует событие с keycode
из 65, независимым от случая символа, который он сгенерировал (есть также модификатор, если нажата клавиша Shift и т. Д.). Символ a имеет юникод charcode
61, тогда как символ A имеет charcode
из 41 (согласно, например, http://www.utf8-chartable.de/ ). Тем не менее, это hex
значения, преобразование в десятичную дает нам charcode
из 65 для «A» и 97 для «a». [1] Это согласуется с тем, что мы получаем из String.fromCharCode
для этих значений.
Мое собственное требование было ограничено обработкой чисел и обычными буквами (принятие или отклонение в зависимости от позиции в строке) и разрешение управляющих символов ( F-ключи, Ctrl-что-то). Таким образом, я могу проверить управляющие символы, если это не контрольный символ, который я проверяю на диапазон, и только тогда мне нужно получить фактический символ. Учитывая, что меня не беспокоит случай (я все равно меняю буквы на прописные буквы) и уже ограничил диапазон кодов клавиш, мне нужно только беспокоиться о клавишах с цифровой клавиатурой. Для этого достаточно:
String.fromCharCode((96 <= key && key <= 105)? key-48 : key)
В общем случае функция надежного возврата символа из charcode
была бы большой (возможно, как плагин jQuery), но у меня нет времени напишите это сейчас. Извините.
Я также упомянул e.which
(если вы используете jQuery), который нормализует e.keyCode
и e.charCode
, так что вам не нужно беспокоиться о том, какой ключ был нажат. Проблема с объединением его с String.fromCharCode
остается.
[1] Некоторое время я был смущен. все документы говорят, что String.fromCharCode
ожидает unicode charcode
, в то время как на практике он, похоже, работает для ASCII-кодировок, но я думаю, из-за необходимости конвертировать в десятичный код из шестнадцатеричного кода в сочетании с тем, что ASCII-символы и unicode decimal charcodes перекрываются для обычных латинских букв.
keyCode
заключается в том, чтобы знать, какой ключ был нажат, чтобы не знать, какой символ использовать. Например, "U" на клавиатуре Dvorak имеет тот же код ключа, что и «F». на клавиатуре QWERTY или "ㄹ" на корейской клавиатуре и т. д. Дело не в том, чтобы превратить его в персонажа, он там, чтобы вы могли легко сопоставить вещи с позицией клавиатуры.
– Vincent McNabb
19 January 2018 в 20:44
Просто важное примечание: принятый ответ выше не будет корректно работать для keyCode> = 144, то есть периода, запятой, тире и т. д. Для них вы должны использовать более общий алгоритм:
let chrCode = keyCode - 48 * Math.floor(keyCode / 48);
let chr = String.fromCharCode((96 <= keyCode) ? chrCode: keyCode);
Если вам интересно, почему это, по-видимому, необходимо из-за поведения встроенной функции JS String.fromCharCode()
. Для значений keyCode <= 96
он, по-видимому, отображается с помощью функции:
chrCode = keyCode - 48 * Math.floor(keyCode / 48)
Для значений keyCode > 96
, как представляется, карта использует функцию:
chrCode = keyCode
Если это похоже на нечетное поведение, тогда хорошо ... Я согласен. К сожалению, это было бы очень далеко от самой странной вещи, которую я видел в ядре JS.
document.onkeydown = function(e) {
let keyCode = e.keyCode;
let chrCode = keyCode - 48 * Math.floor(keyCode / 48);
let chr = String.fromCharCode((96 <= keyCode) ? chrCode: keyCode);
console.log(chr);
};
<input type="text" placeholder="Focus and Type"/>
let
в ответе на вопрос с 2009 года. :-)
– David Murdoch
10 January 2016 в 22:54
Я предполагаю, что это для игры или для быстро реагирующего типа приложения, следовательно, использование KEYDOWN, чем KEYPRESS.
Изменить: Dang! Я стою исправленным (спасибо Crescent Fresh и David): JQuery (или даже, скорее, базовые хосты DOM) делают not раскрывать детали WM_KEYDOWN и других событий. Скорее, они предварительно переваривают эти данные, и в случае keyDown даже в JQuery мы получаем:
Обратите внимание, что эти свойства являются значениями UniCode. Обратите внимание: мне не удалось найти авторитетную ссылку на документы JQuery, но многие уважаемые примеры в сети относятся к этим двум свойствам.
Следующий код, адаптированный из некоторого java (а не javascript) из-за этого, совершенно неправы ...
Ниже приведены «интересные» части кода ключа:
value = e.KeyCode;
repeatCount = value & 0xFF;
scanCode = (value >> 16) & 0xFF; // note we take the "extended bit" deal w/ it later.
wasDown = ((value & 0x4000) != 0); // indicate key was readily down (auto-repeat)
if (scanCode > 127)
// deal with extended
else
// "regular" character
keydown
или нет).
– Crescent Fresh
20 November 2009 в 20:08
Обратитесь к этой ссылке Получить код ключа от нажатия клавиши и значения символа для любого кода клавиши
$('input#inp').keyup(function(e){
$(this).val(String.fromCharCode(e.keyCode));
$('div#output').html('Keycode : ' + e.keyCode);
});