@sishuguojixuefu/react-native-form
Version:
88 lines (87 loc) • 2.2 kB
text/typescript
export default {
/**
* 邮编
*/
zip: /^[1-9]\d{5}(?!\d)$/,
/**
* 邮箱
*/
email: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
/**
* 中文字符
*/
zh: /^[\u4e00-\u9fa5]+$/gm,
/**
* 中文名正则
*/
zhName: /^[\u4e00-\u9fa5]{2,15}$/,
/**
* 网址
*/
url: /^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i,
/**
* 电话号正则,包含手机号、固话号、400电话
*/
phone: /^1[3456789]\d{9}$|^(0[0-9]{2,3}-?)?[0-9]{7,8}$|^400-?\d{3}-?\d{4}$/,
/**
* 手机号正则
*/
mobilePhone: /^1[3456789]\d{9}$/,
/**
* 固话正则,包含400电话
*/
telephone: /^(0[0-9]{2,3}-?)?[0-9]{7,8}$|^400-?\d{3}-?\d{4}$/,
/**
* 身份证正则
*/
idCard: /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/,
/**
* 日期
*/
date: /^(?:(?:1[6-9]|[2-9][0-9])[0-9]{2}([-/.]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:(?:1[6-9]|[2-9][0-9])(?:0[48]|[2468][048]|[13579][26])|(?:16|[2468][048]|[3579][26])00)([-/.]?)0?2\2(?:29))(\s+([01][0-9]:|2[0-3]:)?[0-5][0-9]:[0-5][0-9])?$/,
/**
* 货币字符
*/
money: /^[+-]?[0-9]+(.{1}[0-9]+){0,1}$/,
/**
* 数字
*/
number: /^[+-]?\d+$/,
/**
* 整型数字
*/
integer: /^[+-]?\d+$/,
/**
* 浮点数
*/
floating: /^[+-]?[0-9]+(.{1}[0-9]+){0,1}$/,
/**
* 2的倍数
*/
twoTimes: /^([02468]|[13579][13579]*[02468])*$/,
/**
* 3的倍数
*/
threeTimes: /^([0369]|[258][0369]*[147]|([147]|[258][0369]*[258])([0369]|[147][0369]*[258])*([258]|[147][0369]*[147]))*$/,
/**
* 4的倍数
*/
fourTimes: (rule, value, callback) => {
if (isNaN(value) || value % 4 !== 0) {
callback(rule.message)
}
callback()
},
fiveTimes: (rule, value, callback) => {
if (isNaN(value) || value % 5 !== 0) {
callback(rule.message)
}
callback()
},
sixTimes: (rule, value, callback) => {
if (isNaN(value) || value % 6 !== 0) {
callback(rule.message)
}
callback()
},
}