透過 JavaScript 檢查輸入字串是否包含英文、數字、符號等非中文字元,若發現則阻止送出並提示使用者。
// 通用字元檢查:若字串 s 中包含 bag 內任一字元,回傳該字元
function isCharsInBag(s, bag) {
for (var i = 0; i < s.length; i++) {
var c = s.charAt(i);
if (bag.indexOf(c) > -1) return c;
}
return "";
}
// 中文專用驗證
function isChinese(s) {
var badChar = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789><,[]{}?/+=|\\'\":;~!#$%()`";
var errorChar = isCharsInBag(s, badChar);
if (errorChar != "") {
alert("請重新輸入中文,發現非法字元:" + errorChar);
return false;
}
return true;
}
<form onsubmit="return isChinese(this.field.value)">
請輸入中文:<input type="text" name="field">
<input type="submit" value="送出">
</form>
/^[\u4e00-\u9fa5]+$/ 更精準判斷中文字元(含繁簡體)。badChar 字串或改用正則白名單。