亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將 Javascript keyCode 轉換為 charCode?

如何將 Javascript keyCode 轉換為 charCode?

慕哥9229398 2023-08-18 13:54:59
在 Javascript鍵盤事件中,為按下的按鍵給出了一個代碼,但是,它不是 ASCII 或 UTF-8 字符代碼,而是鍵盤按鍵的代碼。有時 keyCode 恰好與 ASCII/UTF-8 代碼匹配,有時則不然。有沒有辦法,給定 Javascript 鍵代碼(通過e.keyCode或訪問e.which)來獲取相應的 ASCII 或 UTF-8 字符代碼?運行下面的代碼片段。document.addEventListener("keyup", function(e) {? document.querySelector(".key").innerHTML = e.key;? document.querySelector(".keyCode").innerHTML = e.keyCode;? document.querySelector(".UTF").innerHTML = String.fromCharCode(event.keyCode);});code {? background-color: #e2aec8ab;? border: solid 1px gray;? border-radius: 3px;? padding: 0 .5em;? min-height: 1em;? min-width: .2em;? margin: 0 .1em;}.output {? margin: 2em;? border: solid 1px lightgray;? border-radius: 3px;? background-color: rgba(200, 250, 230, .3);? padding: 1em;}Type here. Try some alpha letters as well as special keys like <code>`</code><code>-</code><code>=</code><code>[</code><code>]</code><code>[ENTER]</code><code>;</code><code>'</code><div class="output">? You typed <code class="key"></code> which is Javascript <b></b>keyCode</b> <code class="keyCode"></code>, in UTF that would be <code class="UTF"></code></div>兩個例子:2在鍵盤上輸入捕捉事件。event.keyCode是 50。UTF 字符 50 是2(數字二)但:[在鍵盤上輸入捕捉事件。event.keyCode是 219。UTF 字符 219 是&Ucirc;(帶有省略號的拉丁文大寫字母 U)我希望事件包含的字符代碼91對應于LEFT SQUARE BRACKET。如何將 Javascript keyCodes(例如219)轉換為 UTF-8 charCodes(例如91)?
查看完整描述

1 回答

?
達令說

TA貢獻1821條經驗 獲得超6個贊

我只是想說,這個問題變成了一次有趣的學習冒險。但....

您正在使用已棄用的 API。

事實證明KeyboardEvent.keyCode已被棄用一段時間了。因為它使用十進制版本的 ASCII。使用的正確代碼實際上是event.Code.?但這不是你所追求的。

要獲取 ascii 數字,您可以使用event.key.charCodeAt()這確實有一些缺陷,因為它會S在您按 Shift 時報告。但您可以用來event.location判斷該鍵是否是特殊的控制鍵。0 是標準鍵,1-3 是特殊位置(我認為)。

document.addEventListener("keyup", function(e) {


? document.querySelector(".key").innerHTML = e.key;

? document.querySelector(".keyCode").innerHTML = e.code;

? document.querySelector(".ascii").innerHTML = e.key.charCodeAt()

? document.querySelector(".UTF").innerHTML = String.fromCharCode(event.key.charCodeAt());


});

code {

? background-color: #e2aec8ab;

? ;

? border: solid 1px gray;

? border-radius: 3px;

? padding: 0 .5em;

? min-height: 1em;

? min-width: .2em;

? margin: 0 .1em;

}


.output {

? margin: 2em;

? border: solid 1px lightgray;

? border-radius: 3px;

? background-color: rgba(200, 250, 230, .3);

? padding: 1em;

}

Type here. Try some alpha letters as well as special keys like <code>`</code>

<code>-</code>

<code>=</code>

<code>[</code>

<code>]</code>

<code>[ENTER]</code>

<code>;</code>

<code>'</code>



<div class="output">

? You typed <code class="key"></code> which is Javascript <b>keyCode</b> <code class="keyCode"></code>, in ASCII that would be <code class="ascii"> </code> which is <code class="UTF"></code>

</div>



查看完整回答
反對 回復 2023-08-18
  • 1 回答
  • 0 關注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號