javascript字串檢查
記錄一下自己有用過的字串檢查,主要用來限制使用者輸入的資料,只在後端檢查的話很容易讓使用者頁面跳來跳去,在前端額外使用javascript補助就可以讓正常輸入的使用者有較佳的體驗。
使用時要注意前端檢查只能防止一般使用者,使用工具或有些技術的人員可以繞過這種機制,所以後端一定得再檢查一次。
利用編碼檢查有無英文以外的字元
var tmp = $('#introduction').val();
var len = 0;
var showstr = '英文字';
for (var i = 0; i < tmp.length; i++) {
len++;
if(tmp.charCodeAt(i) < 256){
}else{
showstr = '英文以外字';
}
}
showstr += '目前已'+len+'字';
正規
//純中文字 注意這段連標點符號都不會過
chinese = /^[\u4E00-\u9FA5]+$/;
//email
MailCheck = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9.-]+.[a-z]{2,4}$/;
//email
emailchk = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z]+$/;
//大小寫 數字 英文 特殊符號 4選3
pwdchk = /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?![0-9\W_]+$)[a-zA-Z0-9\W_]{8,20}$/;
//密碼 英文 數字 符號 3選2
let pwdchk = /^(?![a-zA-Z]+$)(?![\W_]+$)(?![0-9]+$)[a-zA-Z0-9\W_]{8,}$/;
//電話強制加區碼
telchk = /^(0\d+)-(\d{8})(?:(?:#)(\d+))?$/;
//電話區碼可省略
telchk = /^(\d*)-?(\d{8})(?:(?:#)(\d+))?$/;
//手機
phonechk = /^(\d{4})-?(\d{3})-?(\d{3})$/;
//檢查用
if (reg.test(input)) {
//通過
} else {
//不通過
}