正则表达式

184 阅读1分钟

正则表达式使用

正则中常用来表示位置的符号主要有:

^、$、\b、\B、?=p、(?!p)、(?<=p)、(?<!p)

  1. ^ 匹配行的开头

  2. $ 匹配行的结尾

  3. \b 单词的边界

  4. \B 非单词的边界

1. 输入正整数 长度限制

<el-input v-model="formInline.value" placeholder="请输入正整数" maxlength="4" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')">
     <span slot="suffix" style=" height: 32px;line-height: 32px;">%</span>
</el-input>

2. 输入数字

<el-input oninput="value=value.replace(/[^\d.]/g,'')" />
replace(/[^\d.]|^./g, '') // 禁止输入非数字和'.'以及以'.'开头的
replace(/^0[0-9]/g, 0) // 开头是0且其后跟的不是'.'替换为0,形如00,01
replace(/.{2,}/g, '.')// 多个'.'相连替换为一个'.'

字符串,手机号分割

let price = '123456789'
let priceReg = /(?!^)(?=(\d{3})+$)/g
console.log(price.replace(priceReg, ',')) // 123,456,789let mobile = '13356784567'
let mobileReg = /(?=(\d{4})+$)/g
console.log(mobile.replace(mobileReg, '-')) // 133-5678-4567

校验


/**
 * 邮箱
 * @param {* s
 */
export const isEmail = (s) =>
    /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3){1,2)$/.test(s);

/**
 * 手机号码
 * @param {* s
 */
export const isMobile = (s) => /^1[3-8][0-9]{9$/.test(s);

/**
 * 电话号码
 * @param {* s
 */
export const isPhone = (s) => /^([0-9]{3,4-)?[0-9]{7,8$/.test(s);

/**
 * URL地址
 * @param {* s
 */
export const isURL = (s) => /^http[s]?:\/\/.*/.test(s);

/**
 * ip地址
 * @param {* s
 */
export const isIP = (s) =>
    /^(25[0-5]|2[0-4]\d|[0-1]\d{2|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2|[1-9]?\d)$/.test(
        s
    );

/**
 * 字符串
 * @param {* s
 */
export const isString = (s) => /^[A-Za-z0-9_\-\u4e00-\u9fa5]+$/.test(s);

/**
 * @description:
 * @param {type
 * @: exp
 * 非负浮点数字
 */
export const isNumber = (s) => /^\d+(\.\d+)?$/.test(s);

/**
 * @description:
 * @param {type
 * @:
 * 银行卡正则
 */

export const isBank = (s) =>
    /^([1-9]{1)(\d{11|\d{15|\d{16|\d{17|\d{18)$/.test(s);