//匹配开头 到 结尾 中文 字母 数字 小数点 - 一次或多次
const reg2 = /^[u4e00-u9fa5a-zA-Z_d-.]+$/g
console.log(reg2.test('12132ni你.-gng'))
var regExp1 = /^(([1-9]{1}d{5})|(0{1}))(.d{4})?$/gi
元字符 | 说明 |
---|---|
d | 匹配 数字 |
D | 匹配 非数字 |
w | 匹配 数字,字母,下划线 |
W | 匹配 任意不是字母,数字,下划线 |
s | 匹配 空白符 |
S | 匹配 任意不是空白符的字符 |
. | 匹配除换行符以外的任意字符 |
^ | 匹配 以谁开头 |
$ | 匹配 以谁结尾 |
/r/n 换行符
var reg = /d/ // 表示只要字符串中有数字,就符合要求
var reg = /D/ // 表示只要字符串中有非数字,就符合要求
var reg = /w/ // 表示只要字符串中有 数字/字母/下划线 就符合要求
var reg = /W/ // 表示只要字符串中有 非数字/非字母/非下划线 就符合要求
var reg = /^a/ //表示 只要字符串以a开头就符合条件
var reg = /a$/ //表示 只要字符串以a结尾就符合条件
var reg = /^abc$/ // 要求字符串中只能有 abc
var reg = /^d$/ //表示 只能有一个数字
var reg = /^a|b$/ //表示 以a开头或者以b结尾
var reg = /^d{11}$/ //表示 字符串中只能出现11次数字
var reg = /^d{3,}$/ //表示 字符串中只能出现3次或3次以上的数字
var reg = /d{3,}/ //表示 字符串中只要包含3个或者3个以上的数字就符合要求 比如 ‘ ab123 ’
var reg = /^d{3,5}$/ //表示 字符串中只能出现3~5次的数字
var reg = /^d*$/ //表示 字符串中只能出现0~多个数字(要么什么都不写,要么只能是数字)
var reg = /^d+$/ //表示 字符串中只能出现1~多个数字(字符串中至少要有一个数字)
var reg = /^d?$/ //表示 字符串中 要么什么都没有,或者 只能出现一个数字
var reg = /^gr[ae]y$/ 或者 var reg = var reg = /^gr(a|e)y$/ //表示 匹配 gray或者grey
var reg = /^[0-9]$/ //匹配从0-9的任意一个数字
var reg = /^[0-9a-z]$/ //匹配从0-9的任意一个数字 或者 a-z的任意一个字母
创建正则的方法
var reg = new RegExp()
var reg = /字符/
test()方法
正则对象.test(字符串) 如果字符串符合正则公式,就返回true,否则返回false
限定符 | 说明 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 代表前面的字符可以出现n次 |
{n,} | 出现n次或更多次 |
{n,m} | 出现n到m次 |
- [] 字符串用中括号括起来,表示匹配其中的任意一个字符,相当于或的意思([]占一个字符的位置)
- [^] 匹配除中括号以内的内容(占一个位置,不能出现[]中的任意一个字符)
- 转义符 (把特殊字符转义为普通字符 如 .)
- | 或者,选择两者中的一个。注意|将左右两边分为两部分,而不管左右两边有多长多乱(会把正则分为两部分)
- () 从两个直接量中选择一个,分组
- eg:gr(a|e)y匹配gray和grey
- [u4e00-u9fa5] 匹配汉字
<script>
// 验证手机号: /^d{11}$/
// 验证邮编: /^d{6}$/
// 匹配 138 139 186 189 170 152 135 188开头的手机号
var reg = /^1[3578][896025]d{8}$/
// 邮箱 xxx@xxx.com/cn
var reg = /^w+@w+.(com|cn)$/
</script>
标志 | 说明 |
---|---|
i | 忽略大小写 |
g | 全局匹配 |
gi | 全局匹配+忽略大小写 |
//01匹配:正则对象.test(字符串) 输出true和false
//02提取:字符串.match(正则对象);
// 提取字符串中的数字部分
var str = "张三:1000,李四:5000,王五:8000。";
var reg = /d+/g //g
console.log(str.match(reg)) // ["1000", "5000", "8000"]
//03替换:字符串.replace(正则/被替换的字符,替换的字符)
// 把字符中的,,替换为|
var str = 'abc,efg,123,abc,123,a'
var reg = /,|,/g
console.log( str.replace(reg,'|') )
</script>
// 2. 分组
// 数字3位.数字3位.数字3位.数字3位.数字3位
var reg = /^d{3}.d{3}.d{3}.d{3}.d{3}$/;
var reg = /^d{3}(.d{3}){4}$/
console.log(reg.test('123.123.123.123.123'));
var dateStr = '2016-1-5';
// 正则表达式中的()作为分组来使用,获取分组匹配到的结果用RegExp.$1 $2 $3....来获取
var reg = /(d{4})-(d{1,2})-(d{1,2})/;
if (reg.test(dateStr)) {
console.log(RegExp.$1); // 2016
console.log(RegExp.$2); // 1
console.log(RegExp.$3); // 5
}
// <!-- 匹配一条正则,用来验证此规则:一个6~16位的字符串,必须同时包含有大小写字母和数字 -->
// 不能是纯字母, 不能是纯数字,不能纯小写和数字 不能纯大写和数字
let reg = /^(?![a-zA-Z]+$)(?![0-9]+$)(?![a-z0-9]+$)(?![A-Z0-9]+$)[a-zA-Z0-9]{6,16}$/
// 1-10位:数字 字母 下划线组成的字符串, 必须有_
// 不能是纯是数字字母
let reg = /(?!^[a-zA-Z0-9]+$)^w{1,10}$/
// 将英文字母汉字组成的字符串,用正则给英文单词加空格
let str = "no作no死,你能你aa",
reg = /[a-z]+/ig
str = str.replace(reg, value=>{
return " " + value + " "
}).trim()//去除字符串首尾空格
console.log(str); //"no 作 no 死,你能你 aa"
身份证校验正则表达式:
var reg = /^[1-9]d{7}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}$|^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}([0-9]|X)$/ (身份证正则)
邮箱校验正则表达式
var reg = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/ (邮箱校验正则)
手机校验正则表达式
var reg = /^1[34578]d{9}$/ (手机校验正则)
必须包含 数字 字母 和 特殊字符,且不能有汉字的 校验
/^(?=.*d)(?=.*[a-zA-Z])(?=.*[~/.!@#$%^&)*+-])[da-zA-Z~.!@#$%^&)+*-]{5,12}$/
特殊字符校验
const validateMessage = (rule, value, callback) => { if (!value) { callback(new Error('请输入企业全称')) } else { var reg = /^[u4e00-u9fa5_a-zA-Z0-9.·-]+$/ var flag = reg.test(value) if (!flag) { callback(new Error('不支持特殊字符')) } callback() } }
座机号校验规则
tel: [ { required: true, message: '请输入座机号', trigger: 'blur' }, { pattern: /^0d{2,3}-d{7,8}$/, message: '正确的座机号格式,如:010-45128742', trigger: 'blur' }, { max: 12, message: '长度最长为12位', trigger: 'blur' } ],