一、正则的创建
//1、字面量创建,一定要加//,不需要加引号
var regexp=/hello/i;
//2、直接实例化,以对象的方式创建:需要加单双引号,但是不要加//
var reg=new RegExp("hello","gi");
二、修饰符说明
- i:忽略大小写
- g:全局匹配
- gi:全局匹配+忽略大小写
三、RegExp对象方法
- 正则对象.test(字符串) 匹配成功返回true,失败返回false
// 下述古诗中是否含有“乘风破浪”?---“乘风破浪会有时 直挂云帆济沧海 。”
var str="乘风破浪会有时 直挂云帆济沧海 。";
var reg=/乘风破浪/;
console.log(reg.test(str));
//true
- exec() 成功返回数组,失败返回null
四、正则的字符串调用函数
在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。
search():字符串对象.search(待查找的字符串|正则),搜索字符串中指定的元素,返回符合条件的第一个元素下标,没找到返回-1。
//使用正则搜索字符串中dream
var str2='I have a dream!';
var reg=/dream/;
var n=str2.search(reg);//n=str2.search(/dream/)
console.log(n);//10
match():字符串对象.match(待匹配的字符串|正则表达式),匹配目标字符串,成功返回数组,失败返回null。
replace():字符串对象.replace(待匹配的字符串|正则表达式,替换的内容),返回新的字符串。
五、正则字符类
[a-z] | 匹配a-z任意一个字符
[A-Z] | 匹配A-Z任意一个字符
[a-zA-Z] | 匹配26个英文字母(大小写)
[0-9] | 匹配一个数字
[0-9a-zA-Z_] | 匹配一个字符可以是数字、字母和下划线
[^0-9] | 匹配非数字
[^a-zA-Z] | 匹配非字母
常用字符类
\d | 匹配数字相当于 [0-9]
\D | 匹配任意非数字的字符 [^0-9]
\w | 匹配字母或数字或下划线 [0-9a-zA-Z_]
\W | 匹配任意不是字母,数字,下划线 [^0-9a-zA-Z_]
\s | 匹配任意的空白符
\S | 匹配任意不是空白符的字符
. | 匹配除换行符以外的任意单个字符
^ | 表示匹配行首的文本(以谁开始)
$ | 表示匹配行尾的文本(以谁结束)
\ |转意
重复字符
* | 重复零次或更多次
+ | 重复一次或更多次
? | 重复零次或一次
{n} | 重复n次
{n,} | 重复n次或更多次
{n,m} | 重复n到m次
[] | 匹配字符组内的字符 [abc]
( str1 | str2 ) | 匹配字符串str1或者str2