正規表示式(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE)是使用單個字串來描述、符合一系列符合某個句法規則的字串。在很多文字編輯器裡,正則運算式通常被用來檢索、替換那些符合某個模式的文字。
僅限數字的驗證:
var regex = /^[0-9\s]*$/;
if (!regex.test("123"))
alert(“這是數字”);
else
alert(“格式錯誤”);
僅限英文及數字的驗證:
var regex = new RegExp("^[a-zA-Z0-9 ]+$");
if (!regex.test("1qaz2wsx"))
alert("這是英文及數字混合字串");
else
alert("格式錯誤");
欄位不可為空的驗證(全形及半形都不行)
if (!$.trim($("#SCHOOL").val().replace(/\ /g, ""))) {
alert("學校欄位不可為空");
}
密碼原則的驗證:
passwordValidator = function (text) {
var passwordregex8digits = new RegExp("^(?=.{8,})"); //最少八個位元
var passwordregexLowercase = new RegExp("^(?=.*[a-z])"); //英文小寫
var passwordregexUppercase = new RegExp("^(?=.*[A-Z])"); //英文大小
var passwordregexNumber = new RegExp("^(?=.*[0-9])"); //數字
var passwordRegexSpecial = new RegExp("^(?=.*[!@#$%^&*])"); //特殊字元
if (!passwordregex8digits.test(text)) {
violate_count++;
}
if (!passwordregexLowercase.test(text)) {
violate_count++;
}
if (!passwordregexUppercase.test(text)) {
violate_count++;
}
if (!passwordregexNumber.test(text)) {
violate_count++;
}
if (!passwordRegexSpecial.test(text)) {
violate_count++;
}
alert('違規次數:' + violate_count);
}
電子郵件格式的驗證:
emailValidator = function (inputData) {
const re = /^(([.](?=[^.]|^))|[\w_%{|}#$~`+!?-])+@(?:[\w-]+\.)+[a-zA-Z.]{2,63}$/;
if (re.test(inputData))
{
alert("這是合法的EMAIL");
}
else {
alert("請輸入符合格式的EMAIL");
}
}
身分證字號格式的驗證:
function checkTwID(id){
//建立字母分數陣列(A~Z)
var city = new Array(1,10,19,28,37,46,55,64,39,73,82, 2,11,20,48,29,38,47,56,65,74,83,21, 3,12,30)
id = id.toUpperCase();
//使用「正規表達式」檢驗格式
if (id.search(/^[A-Z](1|2)\d{8}$/i) == -1) {
return false;
} else {
//將字串分割為陣列(IE必需這麼做才不會出錯)
id = id.split('');
//計算總分
var total = city[id[0].charCodeAt(0)-65];
for(var i=1; i<=8; i++){
total += eval(id[i]) * (9 - i);
}
//補上檢查碼(最後一碼)
total += eval(id[9]);
//檢查比對碼(餘數應為0);
return ((total%10 == 0 ));
}
}