正则相关
/* 在线正则表达式测试: https://tool.oschina.net/regex/# + 号代表前面的字符必须至少出现一次(1次或多次)。 * 号代表字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次)。 ? 问号代表前面的字符最多只可以出现一次(0次、或1次)。 *、+限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。 例如,您可能搜索 HTML 文档,以查找括在 H1 标记内的章节标题。该文本在您的文档中如下: <H1>Chapter 1 - 介绍正则表达式</H1> 贪婪:下面的表达式匹配从开始小于符号 (<) 到关闭 H1 标记的大于符号 (>) 之间的所有内容。 /<.*>/ 非贪婪:如果您只需要匹配开始和结束 H1 标签,下面的非贪婪表达式只匹配 <H1>。 /<.*?>/ 通过在 *、+ 或 ? 限定符之后放置 ?,该表达式从"贪心"表达式转换为"非贪心"表达式或者最小匹配。 <input v-model.trim="account" placeholder="限制最多输入小数点后4位" oninput="value=/^\d+\.?\d{0,4}$/.test(value) ? value : value.substr(0,value.length-1)"> */ var regx = { // 验证手机号码 mobile: /^0?1(3|4|5|7|8)[0-9]{9}$/, // 验证中文名字 name: /^[\u4e00-\u9fa5]+·[\u4e00-\u9fa5]+$|^[\u4e00-\u9fa5]+$/, // 匹配18位身份证号 idNum: /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/, //非0正整数校验 integerReg: /^[1-9][0-9]*$/ } Reg = /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/; DefTip = '请填写正确的邮箱地址'; Reg = /\d{3,4}[\-|\s|_]?\d{7,18}/; DefTip = '请填写正确的电话号码,如:021-12345678'; Reg = /\d{4}(\-|\/|.|_)\d{1,2}\1\d{1,2}(\s?\d{1,2}\:\d{1,2}(\:\d{1,2})?)?$/; DefTip = '请填写正确的日期,如:2008-01-01 01:00:00'; Reg = /((https|http|ftp|rtsp)?:\/\/)[^\s]+/; DefTip = '请填写正确的网址'; // (00-899)005522 或者(000+2255)8999的电话号码 Reg = /^(\([0-9]+[\-\+][0-9]+\))?\d+$/ console.log('非0正整数校验',regx.integerReg.test(123)) /* [A-Z] 表示一个区间,匹配所有大写字母,[a-z] 表示所有小写字母。 要求:由数字和字母组成,并且要同时含有数字和字母,且长度要在8-16位之间。 ^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$ 分开来注释一下: ^ 匹配一行的开头位置 (?![0-9]+$) 预测该位置后面不全是数字 (?![a-zA-Z]+$) 预测该位置后面不全是字母 [0-9A-Za-z] {8,16} 由8-16位数字或这字母组成 $ 匹配行结尾位置 注:(?!xxxx) 是正则表达式的负向零宽断言一种形式,标识预该位置后不是xxxx字符。 */ /* 千分符 正则表达式中 的$1,$2 $1,$2表达的是小括号里面的内容 $1是第一个小括号里的内容,$2是第二个小括号里面的内容,依此类推 比如(\\d{4})(\\d{2})(\\d{2}) 匹配"20190919" $1是第一个括号里匹配的2019 $2是第二个括号里匹配的09 $3是第三个括号里匹配的19 ?=n 匹配任何其后紧接指定字符串 n 的字符串。 */ function milliFormat(num) { return num.toString().replace(/\d+/, function(s){ return s.replace(/(\d)(?=(\d{3})+$)/g, '$1,') }) }
const txtRules = {
message: '不能输入中文',
pattern: new RegExp('[^\u4E00-\u9FFF]+$'),
trigger: "blur"
}
const txtRules_1 = {
message: '控制只允许输入中文字符',
pattern: new RegExp('^[\u4E00-\u9FFF]+$'),
trigger: "blur"
}
const txtRules = {
message: '密码格式6-12位字符,包含数字、字符、字母大小写至少两种类型',
pattern: new RegExp(/^(?![0-9]+$)(?![a-zA-Z]+$)(?![!@#$%^&*?\(\)]+$)[0-9A-Za-z!@#$%^&*?\(\)]{6,12}$/),
trigger: "blur"
}
相关链接
https://www.runoob.com/jsref/jsref-obj-regexp.html
https://zhuanlan.zhihu.com/p/343732546