一、正则表达式
什么是正则表达式
正则表达式(Regular Expression)
简称:RegEx
简单来说它就是通过一系列规则来匹配符合规则得字符串表达式
正则表达式一般有两种表达方式:
//第一种定义方式
var RegEx=/表达式/附加参数
//第二种定义方式:构造函数定义
var RegEx=new RegExp("表达式","附加参数");
表达式:一般使用正则常用的规则符号构成
附加参数:用来表达扩展的含义,一般有三个
1、g:代表全局匹配
2、i:不区分大小写
3、m:多行匹配
一般附加参数可写可不写
正则中常用的方法
1、replace():可以使用正则表达式进行全局替换
var s='111222444';
var RegEx=s.replace(/444/,333);
//RegEx='111222333';
2、search():返回你要查找的字符第一次出现的位置下标,未找到则返回-1
跟indexOf()方法类似
var s='111222444';
var RegEx=s.search(/2/g);
console.log(RegEx);
RegEx=3;
3、match():返回所有要查找的字符的值,并存入数组
var s='111222444';
var RegEx=s.match(/2/g);
console.log(RegEx);
//RegEx=['2','2','2'];
正则对象常用的操作方法
1、exec():检索字符串中的指定值,若有则返回一个数组,这个数组中包含查找值的下标,长度等信息,若没有则返回null
var s='111222444';
var RegEx=/3/g;
console.log(RegEx.exec(s)); //RegEx.exec(s)=null
var RegEx=/2/g;
console.log(RegEx.exec(s)); //RegEx.exec(s)=2
2、test():检索字符串中的指定值,返回true或者false
var s='111222444';
var RegEx=/3/g;
console.log(RegEx.exec(s)); //RegEx.exec(s)=false
var RegEx=/2/g;
console.log(RegEx.exec(s)); //RegEx.exec(s)=true
二、正则表达式的规则
正则表达式中方括号的使用
“[]” 代表匹配区间
var RegEx=/[1-9]/g;
//代表匹配数字1-9之间的数字
var RegEx=/[0-9a-zA-Z]/g;
//代表匹配所有数字、大小写字母
“[^]” 代表不匹配该区间。即取反
var RegEx=/[^1-9]/g;
//代表不匹配数字1-9之间的数字
var RegEx=/[^0-9a-zA-Z]/g;
//代表不匹配所有数字、大小写字母
正则表达式中常用字符的使用
^ | 代表一个正则的开始 |
---|---|
$ | 表示正则结束 |
\s | 匹配任何空白字符 |
\S | 匹配任何非空白字符 |
\d | 匹配所有数字 等价于[0-9] |
\D | 匹配所有非数字 等价于[^0-9] |
\w | 匹配一个数字、下划线和字母 |
\W | 匹配一个非数字、下划线和字母的字符 |
\b | 匹配单词 |
正则表达式中常用量词的使用
* | 表示可以匹配出现0次或多次 |
---|---|
+ | 出现至少一次 |
? | 出现0次或1次 |
{n} | 连续出现n次 |
{n,} | 连续出现至少n次 |
{n,m} | 至少出现n次,最多出现m次 |