记录一下目前项目中运用到的js校验
1、非法字符串(像标题,昵称中使用)
let regEn = /[`!@#$%^&*()_+<>?:"{},.\/;'[\]]+/g,
regCn = /[·!#¥(——):;“”‘、,|《。》?、【】[\]]+/g;
if (regEn.test(value) || regCn.test(value)) {
return callback(new Error("存在非法字符串"));
} else {
callback();
}
2、邮箱校验
let result = value.match(
/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.l-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/
);
if (result == null) {
return callback(new Error("请输入正确的邮箱地址"));
} else {
callback();
}
3、手机号
var result = this.tel.match(/(^1[3|4|5|6|7|8|9]\d{9}$)|(^09\d{8}$)/);
//^09\d{8}$表示台湾号码
4、身份证号码(中国大陆)
let reglength = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
let reg =
/^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
if (reglength.test(value) && reg.test(value)) {
// callback('身份证');
callback();
}
else {
callback(new Error("请输入正确的证件号码"));
}
5、港澳台护照或通行证
参考资料:按照ICAO要求,全世界护照的号码均为9位拉丁字母或阿拉伯数字。
中国居民身份证、通行证(含香港、澳门、台湾)资料整理,含编码规则
//护照
let reg2=/(^[EeGgHhKkSsDdPp]\d{8}$)|(^((1[45])|([SsDdPp][Ee])|([HhKk][Jj])|([Mm][AaBb])|([Ee][A-Za-z]))\d{7}$)/
//通行证
let reg3=/(^[HhMm]\d{10}$)|(^[LlTtCc]\d{8}$)|(^[Cc][A-Za-z]\d{7}$)|(^8[123]0{4}\d{12}$)/