¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * éªè¯çµåé®ç®±æ ¼å¼ |
| | | */ |
| | | function email(value) { |
| | | return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value) |
| | | } |
| | | |
| | | /** |
| | | * éªè¯ææºæ ¼å¼ |
| | | */ |
| | | function mobile(value) { |
| | | return /^1([3589]\d|4[5-9]|6[1-2,4-7]|7[0-8])\d{8}$/.test(value) |
| | | } |
| | | |
| | | /** |
| | | * éªè¯URLæ ¼å¼ |
| | | */ |
| | | function url(value) { |
| | | return /^((https|http|ftp|rtsp|mms):\/\/)(([0-9a-zA-Z_!~*'().&=+$%-]+: )?[0-9a-zA-Z_!~*'().&=+$%-]+@)?(([0-9]{1,3}.){3}[0-9]{1,3}|([0-9a-zA-Z_!~*'()-]+.)*([0-9a-zA-Z][0-9a-zA-Z-]{0,61})?[0-9a-zA-Z].[a-zA-Z]{2,6})(:[0-9]{1,4})?((\/?)|(\/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)+\/?)$/ |
| | | .test(value) |
| | | } |
| | | |
| | | /** |
| | | * éªè¯æ¥ææ ¼å¼ |
| | | */ |
| | | function date(value) { |
| | | if (!value) return false |
| | | // 夿æ¯å¦æ°å¼æè
å符串æ°å¼(æå³ç为æ¶é´æ³)ï¼è½¬ä¸ºæ°å¼ï¼å¦ånew Dateæ æ³è¯å«å符串æ¶é´æ³ |
| | | if (number(value)) value = +value |
| | | return !/Invalid|NaN/.test(new Date(value).toString()) |
| | | } |
| | | |
| | | /** |
| | | * éªè¯ISOç±»åçæ¥ææ ¼å¼ |
| | | */ |
| | | function dateISO(value) { |
| | | return /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(value) |
| | | } |
| | | |
| | | /** |
| | | * éªè¯åè¿å¶æ°å |
| | | */ |
| | | function number(value) { |
| | | return /^[\+-]?(\d+\.?\d*|\.\d+|\d\.\d+e\+\d+)$/.test(value) |
| | | } |
| | | |
| | | /** |
| | | * éªè¯å符串 |
| | | */ |
| | | function string(value) { |
| | | return typeof value === 'string' |
| | | } |
| | | |
| | | /** |
| | | * éªè¯æ´æ° |
| | | */ |
| | | function digits(value) { |
| | | return /^\d+$/.test(value) |
| | | } |
| | | |
| | | /** |
| | | * éªè¯èº«ä»½è¯å·ç |
| | | */ |
| | | function idCard(value) { |
| | | return /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/.test( |
| | | value |
| | | ) |
| | | } |
| | | |
| | | /** |
| | | * æ¯å¦è½¦çå· |
| | | */ |
| | | function carNo(value) { |
| | | // æ°è½æºè½¦ç |
| | | const xreg = /^[京津沪æ¸å豫äºè¾½é»æ¹ç鲿°èæµèµ£éæ¡çæèéåé½è´µç²¤éèå·å®ç¼ä½¿é¢A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/ |
| | | // æ§è½¦ç |
| | | const creg = /^[京津沪æ¸å豫äºè¾½é»æ¹ç鲿°èæµèµ£éæ¡çæèéåé½è´µç²¤éèå·å®ç¼ä½¿é¢A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9æå¦è¦æ¸¯æ¾³]{1}$/ |
| | | if (value.length === 7) { |
| | | return creg.test(value) |
| | | } if (value.length === 8) { |
| | | return xreg.test(value) |
| | | } |
| | | return false |
| | | } |
| | | |
| | | /** |
| | | * éé¢,åªå
许2ä½å°æ° |
| | | */ |
| | | function amount(value) { |
| | | // éé¢ï¼åªå
许ä¿ç两ä½å°æ° |
| | | return /^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0\.\d{1,2}$/.test(value) |
| | | } |
| | | |
| | | /** |
| | | * 䏿 |
| | | */ |
| | | function chinese(value) { |
| | | const reg = /^[\u4e00-\u9fa5]+$/gi |
| | | return reg.test(value) |
| | | } |
| | | |
| | | /** |
| | | * åªè½è¾å
¥åæ¯ |
| | | */ |
| | | function letter(value) { |
| | | return /^[a-zA-Z]*$/.test(value) |
| | | } |
| | | |
| | | /** |
| | | * åªè½æ¯åæ¯æè
æ°å |
| | | */ |
| | | function enOrNum(value) { |
| | | // è±ææè
æ°å |
| | | const reg = /^[0-9a-zA-Z]*$/g |
| | | return reg.test(value) |
| | | } |
| | | |
| | | /** |
| | | * éªè¯æ¯å¦å
å«æä¸ªå¼ |
| | | */ |
| | | function contains(value, param) { |
| | | return value.indexOf(param) >= 0 |
| | | } |
| | | |
| | | /** |
| | | * éªè¯ä¸ä¸ªå¼èå´[min, max] |
| | | */ |
| | | function range(value, param) { |
| | | return value >= param[0] && value <= param[1] |
| | | } |
| | | |
| | | /** |
| | | * éªè¯ä¸ä¸ªé¿åº¦èå´[min, max] |
| | | */ |
| | | function rangeLength(value, param) { |
| | | return value.length >= param[0] && value.length <= param[1] |
| | | } |
| | | |
| | | /** |
| | | * æ¯å¦åºå®çµè¯ |
| | | */ |
| | | function landline(value) { |
| | | const reg = /^\d{3,4}-\d{7,8}(-\d{3,4})?$/ |
| | | return reg.test(value) |
| | | } |
| | | |
| | | /** |
| | | * 夿æ¯å¦ä¸ºç©º |
| | | */ |
| | | function empty(value) { |
| | | switch (typeof value) { |
| | | case 'undefined': |
| | | return true |
| | | case 'string': |
| | | if (value.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length == 0) return true |
| | | break |
| | | case 'boolean': |
| | | if (!value) return true |
| | | break |
| | | case 'number': |
| | | if (value === 0 || isNaN(value)) return true |
| | | break |
| | | case 'object': |
| | | if (value === null || value.length === 0) return true |
| | | for (const i in value) { |
| | | return false |
| | | } |
| | | return true |
| | | } |
| | | return false |
| | | } |
| | | |
| | | /** |
| | | * æ¯å¦jsonå符串 |
| | | */ |
| | | function jsonString(value) { |
| | | if (typeof value === 'string') { |
| | | try { |
| | | const obj = JSON.parse(value) |
| | | if (typeof obj === 'object' && obj) { |
| | | return true |
| | | } |
| | | return false |
| | | } catch (e) { |
| | | return false |
| | | } |
| | | } |
| | | return false |
| | | } |
| | | |
| | | /** |
| | | * æ¯å¦æ°ç» |
| | | */ |
| | | function array(value) { |
| | | if (typeof Array.isArray === 'function') { |
| | | return Array.isArray(value) |
| | | } |
| | | return Object.prototype.toString.call(value) === '[object Array]' |
| | | } |
| | | |
| | | /** |
| | | * æ¯å¦å¯¹è±¡ |
| | | */ |
| | | function object(value) { |
| | | return Object.prototype.toString.call(value) === '[object Object]' |
| | | } |
| | | |
| | | /** |
| | | * æ¯å¦çä¿¡éªè¯ç |
| | | */ |
| | | function code(value, len = 6) { |
| | | return new RegExp(`^\\d{${len}}$`).test(value) |
| | | } |
| | | |
| | | /** |
| | | * æ¯å¦å½æ°æ¹æ³ |
| | | * @param {Object} value |
| | | */ |
| | | function func(value) { |
| | | return typeof value === 'function' |
| | | } |
| | | |
| | | /** |
| | | * æ¯å¦promise对象 |
| | | * @param {Object} value |
| | | */ |
| | | function promise(value) { |
| | | return object(value) && func(value.then) && func(value.catch) |
| | | } |
| | | |
| | | /** æ¯å¦å¾çæ ¼å¼ |
| | | * @param {Object} value |
| | | */ |
| | | function image(value) { |
| | | const newValue = value.split('?')[0] |
| | | const IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i |
| | | return IMAGE_REGEXP.test(newValue) |
| | | } |
| | | |
| | | /** |
| | | * æ¯å¦è§é¢æ ¼å¼ |
| | | * @param {Object} value |
| | | */ |
| | | function video(value) { |
| | | const VIDEO_REGEXP = /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv|m3u8)/i |
| | | return VIDEO_REGEXP.test(value) |
| | | } |
| | | |
| | | /** |
| | | * æ¯å¦ä¸ºæ£å对象 |
| | | * @param {Object} |
| | | * @return {Boolean} |
| | | */ |
| | | function regExp(o) { |
| | | return o && Object.prototype.toString.call(o) === '[object RegExp]' |
| | | } |
| | | |
| | | export default { |
| | | email, |
| | | mobile, |
| | | url, |
| | | date, |
| | | dateISO, |
| | | number, |
| | | digits, |
| | | idCard, |
| | | carNo, |
| | | amount, |
| | | chinese, |
| | | letter, |
| | | enOrNum, |
| | | contains, |
| | | range, |
| | | rangeLength, |
| | | empty, |
| | | isEmpty: empty, |
| | | jsonString, |
| | | landline, |
| | | object, |
| | | array, |
| | | code, |
| | | func, |
| | | promise, |
| | | video, |
| | | image, |
| | | regExp, |
| | | string |
| | | } |