首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JavaScript 驗證特定漢字:直接比對字元,勿用 URL 編碼

     編輯:程式設計綜合問答

需求:輸入框驗證是否為特定漢字「學」,原始碼嘗試用 %E5%AD%A6 (UTF-8 URL 編碼) 比對,導致永遠不相等。

正確做法

<input id="cdemo" type="text">
<button onclick="check()">檢查</button>
<script>
function check() {
    var val = document.getElementById("cdemo").value;
    if (val === "學") {   // 直接用字元字面值比對
        alert("GO ON");
    } else {
        alert("請輸入「學」");
    }
}
</script>

為何 URL 編碼不可行

  • value 取得的是**已解碼的 Unicode 字串**,非 URL 編碼。
  • "%E5%AD%A6" 是 6 字元字串 %E5...,與單字元 "學" 完全不同。
  • 若資料來源已 encodeURIComponent,先用 decodeURIComponent 還原再比對。

進階:支援多個合法字

const ok = new Set(["學", "習", "中", "文"]);
if (ok.has(val)) alert("GO ON");

**直接比對字元**是最簡單、最高效、最不易出錯的方式。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved