iT邦幫忙

2

請問javascript如何判斷中文?

  • 分享至 

  • xImage

是這樣的,我想做一個表單,輸入姓名時會判斷你輸入的是否中文,且至少兩個字以上
然後這個動作都不需要按任何按鈕,輸入時就可知道是否有錯,輸入正確就會顯示正確
錯誤的話就顯示只能輸入中文,我的表單大約是這樣

https://ithelp.ithome.com.tw/upload/images/20180731/20110132fAEM77O6Sh.jpg

目前我只做到判斷你是否有輸入,但後面的暫時想不出來,以下是我的javascript語法

document.addEventListener("DOMContentLoaded", function () {
    document.getElementById("name").addEventListener("blur", chkName);  //事件繫結            
});

function chkName() {

    var thePwd = document.getElementById("name").value;
    var rex = /[^\u4e00-\u9fa5]/;
    if (thePwd == "")
        document.getElementById("idsp2").innerHTML =
            "<img src='Images/error.png'>必須輸入中文";
    else if(namelength>=2)
        for (var i=0;i<namelength;i++){
            
        }
}

希望能為我解答,謝謝

weiclin iT邦高手 4 級 ‧ 2018-07-31 18:43:12 檢舉
你這樣子行政院發言人要怎麼辦
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
joneshong
iT邦新手 5 級 ‧ 2018-07-31 19:07:21
最佳解答

應該需要拆兩段寫
1.一個event listener 判斷keydown, keypress, keyup, changed (任選其一)
(您用blur是只有input失去焦點才會觸發其function)

2.判斷中文...相關文章有很多,參考1參考2
看起來您的Code就少一點而已

function chkName() {

    var thePwd = document.getElementById("name").value;
    var rex = /[^\u4e00-\u9fa5]/;
    if (thePwd == "" && rex.test(thePwd))   //這行
        document.getElementById("idsp2").innerHTML =
            "<img src='Images/error.png'>必須輸入中文";
    else if(name.length>=2)
        for (var i=0;i<namelength;i++){
            
        }
}
tenno081 iT邦研究生 4 級 ‧ 2018-08-01 08:55:17 檢舉

我懂了,感謝解答

0
炎之虛空
iT邦高手 3 級 ‧ 2018-08-01 08:37:41
	$('input').keydown(function (argument) {
		var name = $(this).val();
		var reName = /[\u4E00-\u9FA5]{1,2}$/;
		if (!reName.test(name)) {
			document.getElementById("idsp2").innerHTML =
            "<img src='Images/error.png'>必須輸入中文";
		} 
	});

安捏?

我要發表回答

立即登入回答