const regexUtils = {
allNum (str) { // 匹配所有数字 0 正负数 小数
return /^(-|\+)?\d+(.\d+)?$/.test(str)
},
positiveInt (str) { // 非零正整数
return /^[1-9]\d*$/.test(str)
},
negativeInt (str) { // 非零负整数
return /^-[1-9]\d*$/.test(str)
},
notPositiveInt (str) { // 0或负数
return /^-[1-9]\d*|0$/.test(str)
},
notNegativeInt (str) { // 非负整数
return /^\d+$/.test(str)
},
floatNum (str) { // 是否是浮点数
return /^(-?\d+)(.\d+)?$/.test(str)
},
positiveFloatNum (str) { // 正浮点数
return /^[1-9]\d*.\d*|0.\d*[1-9]\d*$/.test(str)
},
negativeFloatNum (str) { // 负浮点数
return /^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$/.test(str)
},
numDigit (str, n) { // n位数字的正整数
return new RegExp('^\\d{' + n + '}$').test(str)
},
numLeastBits (str, n) { // 至少n为数字
return new RegExp('^\\d{' + n + ',' + '}$').test(str)
},
numBetweenBits (str, n, m) { // 数字位数介于n-m之间包含
return new RegExp('^\\d{' + n + ',' + m + '}$').test(str)
},
firstNotZero (str) { // 开头不是0的数字
return /^[1-9][0-9]*$/.test(str)
},
decimalDigit (str, n) { // 判断有几位小数
return new RegExp('^([1-9][0-9]*)+(.[0-9]{' + n + '}){1}$').test(str)
},
decimalLeastDigit (str, n) { // 判断有至少几位小数
return new RegExp('^([1-9][0-9]*)+(.[0-9]{' + n + ',' + '}){1}$').test(str)
},
ifChinaLetter (str) { // 是否为汉字
return /^[\u4e00-\u9fa5]{0,}$/.test(str)
},
engAndNum (str) { // 英文或数字
return /^[A-Za-z0-9]+$/.test(str)
},
lengthLimit (str, n, m) { // 字符长度为n-m之间
return new RegExp('^.{' + n + ',' + m + '}$').test(str)
},
engAll (str) { // 26英文字母不区分大小写
return /^[A-Za-z]+$/.test(str)
},
smallEng (str) { // 小写英文字母
return /^[a-z]+$/.test(str)
},
bigEng (str) { // 大写英文字母
return /^[A-Z]+$/.test(str)
},
emailRule (str) { // 邮箱验证
return /^\w+([-+.]\w+)*@\w+([-.]\w+)*.\w+([-.]\w+)*$/.test(str)
},
phoneRule (str) { // 手机号验证
return /^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/.test(str)
},
idCardRule (str) { // 身份证验证 15-18位
return /^\d{15}|\d{18}$/.test(str)
},
qqRule (str) { // qq号验证(腾讯QQ号从10000开)
return /[1-9][0-9]{4,}/.test(str)
},
postCodeRule (str) { // 邮政验证(中国邮政编码为6位数字)
return /[1-9]\d{5}(?!\d)/.test(str)
},
}
export {
regexUtils
}