| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 |
- import {
- validateIdcard
- } from './validate_idcard'
- /**
- * @param {string} path
- * @returns {Boolean}
- */
- export function isExternal(path) {
- return /^(https?:|mailto:|tel:)/.test(path)
- }
- /**
- * @param {string} str
- * @returns {Boolean}
- */
- export function validUsername(str) {
- const valid_map = ['admin', 'editor']
- return valid_map.indexOf(str.trim()) >= 0
- }
- /**
- * @param {string} url
- * @returns {Boolean}
- */
- export function validURL(url) {
- const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
- return reg.test(url)
- }
- /**
- * @param {string} str
- * @returns {Boolean}
- */
- export function validLowerCase(str) {
- const reg = /^[a-z]+$/
- return reg.test(str)
- }
- /**
- * @param {string} str
- * @returns {Boolean}
- */
- export function validUpperCase(str) {
- const reg = /^[A-Z]+$/
- return reg.test(str)
- }
- /**
- * @param {string} str
- * @returns {Boolean}
- */
- export function validAlphabets(str) {
- const reg = /^[A-Za-z]+$/
- return reg.test(str)
- }
- /**
- * @param {string} email
- * @returns {Boolean}
- */
- // export function validEmail(email) {
- // const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
- // return reg.test(email)
- // }
- /**
- * @param {string} str
- * @returns {Boolean}
- */
- export function isString(str) {
- if (typeof str === 'string' || str instanceof String) {
- return true
- }
- return false
- }
- /**
- * @param {Array} arg
- * @returns {Boolean}
- */
- export function isArray(arg) {
- if (typeof Array.isArray === 'undefined') {
- return Object.prototype.toString.call(arg) === '[object Array]'
- }
- return Array.isArray(arg)
- }
- // 身份证
- export function validIDcard(rule, value, cb) {
- if (value) {
- if (!validateIdcard(value)) {
- cb(new Error('身份证号格式错误'))
- } else {
- cb()
- }
- } else {
- cb()
- }
- }
- /**
- * 金额
- * @param {*} s
- */
- export function isAmount(s) {
- return /^\d{1,12}(\.\d{1,2})?$/.test(s)
- }
- export function validAmount(rule, value, cb) {
- if (!isAmount(value)) {
- cb(new Error('仅可以输入数字和小数点,保留小数点后两位'))
- } else {
- cb()
- }
- }
- /**
- * 数字
- * @param {*} s
- */
- export function isNumber(s, m, n) {
- var re = new RegExp('^(0|[1-9][0-9]*)$', 'gim')
- return re.test(s)
- }
- export function validNumber(rule, value, cb) {
- if(!isNumber(value)) {
- cb(new Error('请输入数字'))
- } else {
- cb()
- }
- }
- /**
- * 百分比 最大值100
- * @param {*} s
- */
- export function isPercentage(s) {
- return /^(\d?\d(\.\d{0,4})?|100(\.[0]{0,4})?)$/.test(s)
- }
- // 利率,百分百
- export function validPercentage(rule, value, cb) {
- if (!isPercentage(value)) {
- cb(new Error('仅可以输入数字和小数点,最多保留四位小数,最大值100'))
- } else {
- cb()
- }
- }
- export function validAdr(str) {
- return /^\d{1,}$/.test(str)
- }
- export function validAdress(rule, value, cb) {
- if(validAdr(value)) {
- cb(new Error('不可以只输入纯数字'))
- }else{
- cb()
- }
- }
- /**
- * 邮箱
- * @param {*} s
- */
- export function isEmail(s) {
- // return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
- return /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/.test(s)
- }
- /**
- * 手机号码
- * @param {*} s
- */
- export function isMobile(s) {
- return /^[1][3|4|5|7|8|9][0-9]{9}$/.test(s)
- }
- /**
- * 电话号码
- * @param {*} s
- */
- export function isPhone(s) {
- // return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
- return /^((0\d{2,3}(-)?\d{7,8})|(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8})$/.test(s)
- }
- /**
- * 汉字
- * @param {*} s
- */
- export function isZhcn(s, m, n) {
- var re = new RegExp('^[\u2E80-\u9FFF]{' + m + ',' + n + '}$', 'gim')
- return re.test(s)
- }
- /**
- * 汉字、小括号
- * @param {Object} cb
- */
- export function isZh(s) {
- return /^[\u4e00-\u9fa5()]+$/.test(s)
- }
- /**********以下为公共验证方法***********/
- export function validEmail(rule, value, cb) {
- if (value) {
- if (!isEmail(value)) {
- cb(new Error('邮箱格式错误'))
- } else {
- cb()
- }
- } else {
- cb()
- }
- }
- export function validMobile(rule, value, cb) {
- if (value) {
- if (!isMobile(value)) {
- cb(new Error('请输入正确的手机号'))
- } else {
- cb()
- }
- } else {
- cb()
- }
- }
- export function validPhone(rule, value, cb) {
- if(!value) {
- cb()
- }else {
- if (!isPhone(value)) {
- cb(new Error('请输入正确的固定电话格式,例如xxxxxxxxxxx,xxxx-xxxxxxx'))
- } else {
- cb()
- }
- }
-
- }
- export function validZhcn(rule, value, cb) {
- if (!isZhcn(value, 1, 25)) {
- cb(new Error('仅可输入汉字'))
- } else {
- cb()
- }
- }
- export function validZh(rule, value, cb) {
- if(!isZh(value)) {
- cb(new Error('仅可以输入汉字和小括号'))
- }else {
- cb()
- }
- }
|