正则表达式:regular expression(reg)
- 在开发过程中,要经常处理一些字符串匹配和搜索都需要匹配当前字符串内容,这个时候需要用到正则表达式。
- 在js当中正则是一个对象
两种创建正则的方法:
构造函数创建正则,参数是正则的字符串
var r1 = new RegExp("\d");
字面量创建:直接将字符串写在//中间
基础格式:
1. 匹配一个数字字符。等价于[0-9] \d
var r2 = /\d/;
2. ^表示匹配字符串的开头值 ^abc表示是否以abc开头
var r3 = /^abc/;
3. 字符串必须以abc结尾
var r4 = /abc$/;
4. 检测当前字符串是否为abc
var r5 = /^abc$/;
5. 是否包含有两个连续的数字
var r6 = /\d\d/;
6. {}表示位数的匹配 前边的数字是要连续出现的次数
是否包含连续的六个数字{6}
^\d{3,6}$出现3到六次
{3,}出现3或者3次以上
var r7 = /^\d{3,6}$/;
7. \w表示匹配数字,字母,下划线
var r8 = /^\w$/;
8. []表示一个字符区间 意味着这个位置必须是本区间内的任意一个字符
一个[]表示一个字的位置
var r9 = /^[12345abcde]$/;
9. []中除了写多个字符以外,还可以写unicode编码区间,两个字符中间用-代表,例如0-9表示数字
var r10 = /^[0-9a-zA-Z]$/;
10. Unicode编码中的汉字范围
var r11 =/^[\u2E80-\u9FFF]+$/;
11. 判断字符串为不为中文
var r12 = /^[\u4e00-\u9fa5]$/;
12. +代表匹配一位或多位和{1,}
13. 邮箱正则
var r13 = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
var email = /^\w+@\w+\.\w+$/;
14. 手机正则
var phone = /^1[3456789]\d{9}$/;
15. 正则中() 是提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。
方法:
test();
参数是一个字符串,用于判断字符串内容符合不符合正则表达式匹配返回true 不匹配返回false
console.log(phone.test("15978507331"));
exec();
正则表达式除了进行字符串匹配还可以用来搜索
var str = "abc345g,abc123abcdefg331,a";
// g代表关键字 代表找到匹配当前正则的索引
var abcReg = /\d{3}/g;
var value = "";
var arr = [];
// 赋值语句可以当做一个表达式,表达式的值就是右部分的值
while (value = abcReg.exec(str)) {
//[ '345', index: 3, input: 'abc345g,abc123abcdefg331,a' ]
arr.push(value);
}