UNPKG

js-wrench

Version:

JS函数库

206 lines (191 loc) 5.17 kB
/** * @description 正则验证 使用单例 * * @class CheckRegExp */ class CheckRegExp { private static $instance: CheckRegExp constructor() {} /** * @description 获取实例 * * @static * @return {*} * @memberof CheckRegExp */ public static getInstance() { if (!this.$instance) this.$instance = new CheckRegExp() return this.$instance } /** * * @description 匹配手机号码 * * @param {*} v 要匹配的内容 * @return {*} {boolean} 返回一个布尔值 * @memberof CheckRegExp * @example mobile(12345678) => return false */ public mobile(v: any): boolean { let reg: RegExp = /^1[3|4|5|6|7|8|9][0-9]{9}$/ return reg.test(v) } /** *@description 匹配座机 * * @param {*} v 要匹配的内容 * @return {*} {boolean} 返回一个布尔值 * @memberof CheckRegExp * @example telephone("1367894517") => false */ public telephone(v: any): boolean { let reg: RegExp = /^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/ return reg.test(v) } /** * @description 匹配密码 密码以字母开头,长度在6~18之间,只能包含字母、数字和下划线 * * @param {*} v 要匹配的内容 * @return {*} {boolean} 返回一个布尔值 * @memberof CheckRegExp * @example password("abc!@") => false */ public password(v: any): boolean { let reg: RegExp = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/ return reg.test(v) } /** * @description 匹配QQ号码 * * @param {*} v 要匹配的内容 * @return {*} {boolean} 返回一个布尔值 * @memberof CheckRegExp * @example qq("12345") => false */ public qq(v: any): boolean { let reg: RegExp = /^[1-9][0-9]{4,9}$/ return reg.test(v) } /** * @description 匹配身份证号码 * * @param {*} v 要匹配的内容 * @return {*} {boolean} 返回一个布尔值 * @memberof CheckRegExp * @example IDcard("2313213213") => false */ public IDcard(v: any): boolean { let reg: RegExp = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/ return reg.test(v) } /** * @description 匹配邮政编码 * * @param {*} v 要匹配的内容 * @return {*} {boolean} 返回一个布尔值 * @memberof CheckRegExp * @example postal("511740") => true */ public postal(v: any): boolean { let reg: RegExp = /\d{6}/ return reg.test(v) } /** * @description 匹配URL * * @param {*} v 要匹配的内容 * @return {*} {boolean} 返回一个布尔值 * @memberof CheckRegExp * @example url("http://127.0.0.1") => true url("http://www.abc.com") => true */ public url(v: any): boolean { let reg: RegExp = /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/ return reg.test(v) } /** * @description 匹配IP * * @param {*} v 要匹配的内容 * @return {*} {boolean} 返回一个布尔值 * @memberof CheckRegExp * @example IPv4("127.0.0.1") => true */ public IPv4(v: any): boolean { let reg: RegExp = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ return reg.test(v) } /** * @description 匹配数字 * * @param {*} v 要匹配的内容 * @return {*} {boolean} 返回一个布尔值 * @memberof CheckRegExp * @example number("123") => true number("s1") => false */ public number(v: any): boolean { let reg: RegExp = /^[0-9]$/ return reg.test(v) } /** * @description 匹配英文 * * @param {*} v 要匹配的内容 * @return {*} {boolean} 返回一个布尔值 * @memberof CheckRegExp * @example en("cn") => true */ public en(v: any): boolean { let reg: RegExp = /^[a-zA-Z]+$/ return reg.test(v) } /** * @description 匹配中文 * * @param {*} v 要匹配的内容 * @return {*} {boolean} 返回一个布尔值 * @memberof CheckRegExp * @example cn("中文") => true cn("cn") => false */ public cn(v: any): boolean { let reg: RegExp = /^[\u4E00-\u9FA5]+$/ return reg.test(v) } /** * @description 匹配HTML标签 * * @param {*} v 要匹配的内容 * @return {*} {boolean} 返回一个布尔值 * @memberof CheckRegExp * @example html("<div></div>") => true */ public html(v: any): boolean { let reg: RegExp = /<("[^"]*"|'[^']*'|[^'">])*>/ return reg.test(v) } /** * @description 匹配邮箱地址 * * @param {*} v 要匹配的内容 * @return {*} {boolean} 返回一个布尔值 * @memberof CheckRegExp * @example email("1324568@qq.com") => true */ public email(v: any): boolean { let reg: RegExp = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/ return reg.test(v) } /** * @description 匹配账号合法 * * @param {*} v 要匹配的内容 * @return {*} {boolean} 返回一个布尔值 * @memberof CheckRegExp * @example username(abc_132) => true */ public username(v: any): boolean { let reg: RegExp = /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/ return reg.test(v) } } const check:CheckRegExp = CheckRegExp.getInstance() export default check