正则表达式
一个用来描述或者匹配一系列符合某个语法的字符串的语言,多用在文字替换,数据验证,内容检索,过滤内容等方面
创建正则表达式
- 构造函数的形式创建
reg = new RegExp("正则表达式","模式修正符");
1
2
3
var reg = new RegExp('google');
var result = reg.test("www.google.com");
alert(result);
- 字面量方式创建
1
2
3
4
//两侧“/”称为定界符
var reg = /google/;
var result = reg.test("www.google.com");
alert(result);
匹配的方法
- test方法
正则对象.test(str)
,匹配成功返回true,失败返回false
- exec方法
正则对象.exec(str)
,匹配成功返回一个数组,失败返回false,返回数组中的input属性是被匹配的字符串,index属性是子串的位置
原子
- 原子是正则表达式中的最小元素,包括英文,标点符号等
- \d 匹配任意一个数字[0-9]
- \D 与除数字外的任何一个字符匹配[^0-9]
- \w 与任意一个英文字母,数字或下划线匹配[a-z0-9A-Z]
- \W 除了字母,数字或下划线外的任意一个字符匹配[^a-z0-9A-Z]
- \s 与任意一个空白字符匹配[\n\f\r\t\v]
- \S 与除了空白符外的任意一个字符匹配[^\n\f\r\t\v]
元字符
正则表达式中有些字符有特殊意义叫元字符
.
匹配除换行符外的任意一个字符|
或的意思,匹配其中一项就代表匹配
原子表
- [] 匹配其中的任意一个原子
- [^] 只匹配除其中以外的任意一个字符
- [0-9] 匹配0-9任意一个数字
- [a-z] 匹配小写a-z任意一个字母
- [A-Z] 匹配大写A-Z任意一个字母
量词
可以使一些元字符字符,重复表示一些原子或元字符
-
- 重复0或更多次
-
- 重复1或更多次
- ? 重复零次或一次
- {n} 重复n次
- {n,} 重复n次或更多次
- {n,m} 重复n到m次
贪婪与吝啬
正则匹配默认是贪婪的,会返回最长的结果,禁止贪婪在量词后加?
*?
+?
??
{n,}?
{n,m}?
匹配边界符
- ^ 匹配字符串的开始
- $ 匹配字符串的结束,忽略换行符
模式修正符
- 不区分大小写字母
- 将字符串视为多行,修饰^或$
- 全局匹配,找到所有匹配项
字符串中用到正则的函数
- replace函数
1
str.replace(正则表达式,替换的新内容);
- split函数,将字符串切割成数组
1
str.split(正则表达式);