符号 | 意义 | 例子 |
---|---|---|
. | 除\n以外的任意一个字符 | |
[] | 表示范围 | [0-9]:表示0-9之间的任意一个数字 |
消除正则表达式中的元字符的意义 | [.]:表示. | |
| | 或者 | [0-9]|[a-z]:表示是一个数字或者一个小写字母 |
() | 分组 | ([0-9])([1-5]):两组,从最左边开始计算 |
提升优先级 | [0-9]|([a-z])|[A-Z]:小写字母优先级最高 |
限字符也是元字符的一种
符号 | 意义 | 例子 |
---|---|---|
* | 表达式出现0到多次 | [a-z][0-9]*:小写字母任意一个,后面的数字出现0次或多次 |
+ | 表达式出现1到多次 | [a-z][0-9]+:小写字母任意一个,后面的数字出现1次或多次 |
? | 表达式出现0到1次 | [a-z][0-9]?:小写字母任意一个,后面的数字出现0次或1次 |
阻止贪婪模式 | ||
{} | 表示表达式出现的次数 | {0, }:相当于* |
{1, }:相当于+ | ||
{0,1 }:相当于? | ||
^ | 表示表达式以什么开始 | ^[0-9]:以数字开始 |
取非 | [^0-9]:非数字 | |
$ | 表示表达式以什么结束 | [0-9]$:以数字结束 |
\d | 数字中的任意一个 | 相当于[0-9] |
\D | 非数字中的任意一个 | |
\s | 空白符中的任意一个 | 空格、tab等 |
\S | 非空白符 | |
\w | 非特殊符号 | [相当于[a-zA-Z0-9_] |
\W | 特殊符号 | 相当于[^a-zA-Z0-9_] |
\b | 单词的边界 | |
\t | 水平制表符 | |
\ | 转义符 | |
\f | 换页 |
1.身份证号:15—18位
([1-9][0-9]{14})([0-9]{2}[0-9xX])?
2.座机号码:010-19876754 或 0431-87123490
[0-9]{3,4}[-][0-9]{8}
3.QQ号码:5-11位
[1-9][0-9]{4,10}
4.邮箱
[0-9a-zA-Z_.-]+[@][0-9a-zA-Z_.-]+([.][a-zA-Z]+){1,2}
RegExp
test()匹配方法,返回值为boolean
var reg=new RegExp(/\d{5}/);
var str="我的电话号码是:10086";
var flag=reg.test(str);
console.log(flag);//true
//(/\d{5}/)=====("\\d{5}")
var reg=/\d{1,5}/;
var flag=reg.test("我的电话号码是:888");
console.log(flag);//true
验证密码强中弱
验证表单
1.match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
在正则表达式中,g
表示的是全局模式匹配
var str="中国移动:10086,中国联通:10010";
var array=str.match(/\d{5}/);//["10086"]
var array1=str.match(/\d{5}/g);//["10086","10010"]
提取日期中的日:
在正则表达式中,()
有分组的意思,可以通过RegExp.$num
来提取其中一个组
var str="2017-11-12";
var array=str.match(/(\d{4})[-](\d{2})[-](\d{2})/g);
console.log(RegExp.$3);//12
2.replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
var str="小苏好帅哦,真的是太帅了,帅,就是真帅";
str=str.replace(/帅/g,"美");
console.log(str);//小苏好美哦,真的是太美了,美,就是真美
在正则表达式中,i
表示的修改为大小写不敏感
var str="HhpphH";
str=str.replace(/[h]/gi,"S");
console.log(str);//SSppSS
3.exec()方法用于检索字符串中的正则表达式的匹配。
//把里面所有的数字全部显示出来
var str = "中国移动:10086,中国联通:10010,中国电信:10000";
//var array = str.match(/\d{5}/g);
var reg=/\d{5}/g;
var array=reg.exec(str);
console.log(array);
console.log(reg.exec(str));
console.log(reg.exec(str));
console.log(reg.exec(str));
倘若在之后再添加一句console.log(reg.exec(str));
,结果为:[“10086”]
以上代码也可以写为
var str = "中国移动:10086,中国联通:10010,中国电信:10000";
var reg=/\d{5}/g;
//通过正则表达式匹配这个字符串
var array=reg.exec(str);
while (array!=null){
//输出匹配的内容
console.log(array[0]);
array=reg.exec(str);
}
数组和为数组的区别
__proto__