UNPKG

tsp-component

Version:

提供多端和react版本的UI组件

106 lines (105 loc) 3.48 kB
var regexp = { space: /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, number: /^\d+$/, char: /((?=[\x21-\x7e]+)[^A-Za-z0-9])/, name: /^[\u4e00-\u9fa5]{1,20}$/, tel:/^(1\d{2}|852|853|832)\d{8}$|^886\d{9,10}$/, landline: /^((0\d{2,3})-)(\d{7,8})(-(\d{1,3}))?$/, price: /^[0-9]+(.[0-9]{1,2})?$/, integer: /^(-|\+)?\d+$/, cardId: /^((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|71|(8[12])|91)\d{4}((19\d{2}(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(19\d{2}(0[13578]|1[02])31)|(19\d{2}02(0[1-9]|1\d|2[0-8]))|(19([13579][26]|[2468][048]|0[48])0229))\d{3}(\d|X|x)?$/, emoji: /\ud83c[\udf00-\udfff]|\ud83d[\udc00-\ude4f]|\ud83d[\ude80-\udeff]/g }; var errorStyle = 'tsp-component-Input-error'; function validateRequried(formControlElem, callback) { var dataset = formControlElem.dataset; if (dataset.required) { if (dataset.value) { return true; } else { if (callback) { callback(dataset.requiredMsg, formControlElem); } return false; } } else { return true; } } function validatePattern(formControlElem, callback) { var dataset = formControlElem.dataset; var regex; var flag = true; var msg = dataset.patternMsg; var result; if (!dataset.value) { return true; } if (dataset.pattern) { regex = new RegExp(eval(dataset.pattern)); switch (dataset.patternType) { case 'space': case 'char': flag = regex.test(dataset.value) === false; break; default: flag = regex.test(dataset.value).toString() === dataset.patternTrigger; break; } switch (dataset.patternType) { case 'space': msg = msg || '不能输入空格'; break; case 'number': msg = msg || '只能输入数字'; break; case 'char': msg = msg || '不能输入非法字符'; break; case 'name': msg = msg || '名字中不能包含特殊字符'; break; case 'tel': msg = msg || '请输入正确的手机号'; break; case 'landline': msg = msg || '请输入正确的座机号'; break; case 'price': msg = msg || '请填写正确的金额(最多2位小数)'; break; case 'integer': msg = msg || '请填写整数'; break; case 'landline': msg = msg || '请输入正确的座机号'; break; case 'cardId': msg = msg || '请输入正确的身份证号'; break; default: break; } if (flag) { result = true; } else { if (callback) { callback(msg, formControlElem); } result = false; } } else { result = true; } if (result) { formControlElem.classList.remove(errorStyle); } else { formControlElem.classList.add(errorStyle); } return result; } export { regexp, validateRequried, validatePattern };