title | date | tags |
---|---|---|
常用校验规则 |
2017-09-01 |
Javascript |
做项目时经常要校验输入框的字符,于是我做了整理。记录下来
/**
* 邮箱校验,返回邮箱是否正确
* @param str
* @returns {boolean}
*/
export const email = (str) => {
return /^[a-z_0-9.-]{1,64}@([a-z0-9-]{1,200}.){1,5}[a-z]{1,6}$/.test(str);
};
/**
* 大陆手机号校验,返回手机号是否正确
* @param str
* @returns {boolean}
*/
export const cnPhone = (str) => {
return /^1\d{10}$/.test(str);
};
/**
* 金额校验,最多支持到小数点后两位
* @param str
* @returns {boolean}
*/
export const amount = (str) => {
return /^\d+(\.\d{1,2})?$/.test(str);
};
/**
* 中文校验,返回是否全中文
* @param str
* @returns {boolean}
*/
export const zhCn = (str) => {
return /^[\u4e00-\u9fa5]+$/.test(str);
};
/**
* 中文校验,返回是否存在中文
* @param str
* @returns {boolean}
*/
export const existZhCn = (str) => {
return /[\u4e00-\u9fa5]/.test(str);
};
/**
* 英文校验,返回是否全英文
* @param str
* @returns {boolean}
*/
export const en = (str) => {
return /^[a-z]+$/.test(str);
};
/**
* 英文校验,返回是否存在英文字母
* @param str
* @returns {boolean}
*/
export const existEn = (str) => {
return /[a-z]/.test(str);
};
/**
* 银行校验,返回是否正确
* @param str
* @returns {boolean}
*/
export const bank = (str) => {
return /^\d{16,19}$/.test(str);
};
/**
* 大陆身份证校验,返回是否正确
* @param str
* @returns {boolean}
*/
export const identity = (str) => {
return /^\d{17}[A-Za-z0-9]$/.test(str);
};
/**
* 数字校验,返回是否正确
* @param str
* @param options Object 数字位数,默认为4位
* @returns {boolean}
*/
export const number = (str, options) => {
if (Object.prototype.toString.call(options).match(/([A-Z][a-z]+)/g)[0].toLowerCase() === 'object') {
return new RegExp(`^[0-9]{${options.limit}}$`).test(str);
}
return /^[0-9]{4}$/.test(str);
};
/**
* 总体校验
* @param str
* @param type String
* @param options Object
* @returns {boolean}
*/
export default (str, type, options) => {
switch ((type || '').toLowerCase()) {
case 'amount':
return amount(str);
case 'bank':
return bank(str);
case 'identity':
return identity(str);
case 'cnphone':
return cnPhone(str);
case 'email':
return email(str);
case 'en':
return en(str);
case 'existen':
return existEn(str);
case 'existzhcn':
return existZhCn(str);
case 'number':
return number(str, options);
case 'zhcn':
return zhCn(str);
default:
return false;
}
};