From f26f29d84e0a68831a6af14dab3eec5500496d2e Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期三, 28 五月 2025 16:48:52 +0800 Subject: [PATCH] 初始化项目 --- uni_modules/wu-ui-tools/libs/function/test.js | 287 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 287 insertions(+), 0 deletions(-) diff --git a/uni_modules/wu-ui-tools/libs/function/test.js b/uni_modules/wu-ui-tools/libs/function/test.js new file mode 100644 index 0000000..7c8b747 --- /dev/null +++ b/uni_modules/wu-ui-tools/libs/function/test.js @@ -0,0 +1,287 @@ +/** + * 楠岃瘉鐢靛瓙閭鏍煎紡 + */ +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 = /^[浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹绮ら潚钘忓窛瀹佺惣浣块A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/ + // 鏃ц溅鐗� + const creg = /^[浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹绮ら潚钘忓窛瀹佺惣浣块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 { + email, + mobile, + url, + date, + dateISO, + number, + digits, + idCard, + carNo, + amount, + chinese, + letter, + enOrNum, + contains, + range, + rangeLength, + empty, + jsonString, + landline, + object, + array, + code, + func, + promise, + video, + image, + regExp, + string +} -- Gitblit v1.9.3