獲取輸入框中的字符長度進行表單驗證,當輸入英文時字符長度就是1,當輸入中文時字符長度為2。
字符數為4~16位,
上圖:
一個中文抵兩英文。
上代碼
1 btn.addEventListener('click',ov,false); 2 3 function ov(){ 4 var inputValue = text.value.trim(); 5 //去掉最前最后的空格 6 if (countLength(inputValue) < 4 || countLength(inputValue) > 16) { 7 //判斷長度是否在4-16之間 8 pro.innerHTML = '名稱格式錯誤'; 9 pro.className = 'pro warn'; 10 text.className = 'warn'; 11 }else{ 12 pro.innerHTML = '名稱格式正確'; 13 pro.className = 'pro cor'; 14 text.className = 'cor'; 15 } 16 } 17 18 function countLength(str){ 19 var inputLength = 0; 20 //給一個變量來記錄長度 21 for (var i = 0; i < str.length; i++) { 22 var countCode = str.charCodeAt(i); 23 //返回指定位置的字符的Unicode編碼 24 //判斷是不是ASCII碼,Unicode碼前128個字符是ASCII碼 25 if (countCode >= 0 && countCode <= 128) { 26 inputLength ++; 27 }else{ 28 inputLength +=2; 29 //如果是擴展碼,則一次+2 30 } 31 } 32 return inputLength; 33 }