input输入框校验规则

<a-input placeholder="" v-model:value="value1"
                             @input="(e) => limitInput(2,e.target.value)"
                    />
methods: {
	// 校验输入框输入的内容
      limitInput(type, value) {
        if(type == 1) {// 只能输入正整数
          let newValue =
            ("" + value) // 第一步:转成字符串
              .replace(/^(0+)|[^\d]+/g, "")// 只能输入正整数
          console.log('newValue', newValue)
        } else if(type == 2) {// 能输入正整数或正两位的小数
          let newValue =
            ("" + value) // 第一步:转成字符串
              .replace(/[^\d^\.]+/g, "") // 第二步:把不是数字,不是小数点的过滤掉
              .replace(/^0+(\d)/, "$1") // 第三步:第一位0开头,0后面为数字,则过滤掉,取后面的数字
              .replace(/^\./, "0.") // 第四步:如果输入的第一位为小数点,则替换成 0. 实现自动补全
              .match(/^\d*(\.?\d{0,2})/g)[0] || ""; // 第五步:最终匹配得到结果 以数字开头,只有一个小数点,而且小数点后面只能有0到2位小数
          console.log('newValue', newValue)
        }
      },
      // 能输入数字,负数,小数(保留两位)
      limitInput2(key, value, id) {
        if(isNaN(value) && !/^-$/.test(value)){
           value="";
        }
        if(!/^[+-]?\d*\.{0,1}\d{0,1}$/.test(value)){
           value=value.replace(/\.\d{2,}$/,value.substr(value.indexOf('.'),3));
        }
      }
}

其他正则(待验证):

// 匹配模式主机名端口号
export const SCHEMEHOSTNAME_REGEX = /(^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?)\//i

// 匹配中文字符
export const CHN_REGEX = /[\u4e00-\u9fa5]/

// 匹配双字节字符
export const DOUBLE_BYTE_REGEX = /[^\x00-\xff]/i

// 只能输入数字
export const ONLY_NUMBER_REGEX = /^\d+$/

// 正整数【不包含0】
export const INTEGER_REGEX = /^[1-9]\d*$/

// 0~100整数
export const ZERO_TO_HUNDRED_INTEGER_EGEX = /^(?:[1-9]?\d|100)$/

// 只能由英文、数字、下划线组成
export const ONLY_ENG_NUM_UNDERLINE_REGEX = /^\w+$/

// 只能由小写英文和数字组成
export const ONLY_ENG_NUM_REGEX = /^[a-z0-9]+$/i

// 只能由大写英文字母组成
export const ONLY_CAPITAL_ENG_REGEX = /^[A-Z]+$/

// 只能由小写英文字母组成
export const ONLY_LOWER_ENG_REGEX = /^[a-z]+$/i

// 只能由英文字母数字组成
export const ENG_REGEX = /^[A-Za-z0-9]+$/

// 国内手机号
export const PHONE_REGEX = /^[1][0-9]{10}$/

// 匹配手机号(包含虚拟运营商号段)
export const MOBILE_REGEX = /^(0|86|17951)?(13[0-9]|15[012356789]|17[015678]|18[0-9]|14[57])[0-9]{8}$/

// 匹配Email
export const EMAIL_REGEX = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/

// 匹配URL
export const URL_REGEX = /^(https?|ftp|file):\/\/.+$/i

// 匹配身份证号码
export const ID_REGEX = /^(^[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])$)$/

// 匹配邮编
export const ZIP_CODE = /^[1-9]\d{5}(?!\d)$/

// 匹配文本中的url(全局且忽略大小写)
export const URL_IN_TEXT = /((((https?|ftp?):(?:\/\/)?)(?:[-;:&=\+\$]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\?\+=&;:%!\/@.\w_]*)#?(?:[-\+=&;%!\?\/@.\w_]*))?)/ig

// 获取文件后缀
export const FILE_FORMAT_REGEX = /[^\.]+$/

// 保留一位小数
export const ONE_DIGIT_DECIMAL_REGEX = /^\d+(\.\d{1})?$/

// 最多保留两位小数
export const TWO_DIGIT_DECIMAL_REGEX = /^\d+(\.\d{1,2})?$/

// 范围:[0.01,9999.99]
export const TWO_DIGIT_PRICE_REGEX = /^0\.\d{1,2}$|^[1-9]\d{0,3}\.\d{1,2}$|^[1-9]\d{0,3}$/

// 范围:[0.01,9999999.99]
export const TWO_DIGIT_PRICE_MAX_REGEX = /^0\.\d{1,2}$|^[1-9]\d{0,6}\.\d{1,2}$|^[1-9]\d{0,6}$/

//
export const HIT_PRICE_REGEX = /^0\.\d{1,2}$|^[1-9]\d{0,3}\.\d{1,2}$|^[1-9]\d{0,3}$|^[0,1]\d{0,4}\.\d{1,2}$|^[0-1]\d{0,4}$|^(20000)$/

// source字母或数字20位
export const TWENTY_NUM_LETTER_REGEX = /^[A-Za-z]{0,20}$/

// 匹配中文英文
export const ONLY_CHN_REGEX = /^[\u4e00-\u9fa5a-zA-Z]+$/

// 英文字母
export const ENG = /^[A-Za-z]+$/

// 股份 0.01 ~ 99.99
export const SHARE_SCALE_REGEX = /^\d\.([1-9]{1,2}|[0-9][1-9])$|^[1-9]\d{0,1}(\.\d{1,2}){0,1}$/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值