tsp-component
Version:
提供多端和react版本的UI组件
106 lines (105 loc) • 3.48 kB
JavaScript
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 };