正则表达式使用
正则中常用来表示位置的符号主要有:
^、$、\b、\B、?=p、(?!p)、(?<=p)、(?<!p)
-
^ 匹配行的开头
-
$ 匹配行的结尾
-
\b 单词的边界
-
\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,789
let 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);