正则的创建
正则的创建方式:
1.构造函数方式
var reg1 = new RegExp("a");
var str = "adassdfsd";
console.log(str.match(reg1)) //输出匹配a的字符
2.字面量方式,古老的perl语言风格
var reg2 = /a/;
console.log(str2.match(reg2)); //输出匹配a的字符
/ / 是正则表达式的标识符
" " 是字符串的标识符
[ ] 是数组的标识符
{ } 是对象的标识符
正则中的修饰符,写在正则表达式后面/的后面:
g表示全局匹配,查找所有
i表示忽略大小写
先看各种方法有什么不同?
字符串方法
match 获取匹配的项目 返回数组 匹配正则
search 字符串搜索
replace 替换
正则方法:
test 方法用于检测一个字符串是否匹配某个模式. 返回true和false
exec()找到了返回数组,找不到反回null
三、正则与字符串配合
search 字符串搜索
返回出现的位置、忽略大小写 i
例子:判断浏览器的类型
match 获取匹配的项目 返回数组
量词: +
量词变化: \d 、\d\d 和\d+
例子:找出所有的数字
replace 替换所有匹配 返回替换后的字符串
例子:敏感词过滤
正则方式 test() 方法用于检测一个字符串是否匹配某个模式. 返回true和false
比如检测str中有没有box;
var str = "This is a Box!";
var res = /box/;
console.log(res.test(str));
修饰符:
i 忽略大小写
g 全局匹配
四、字符类
任意字符
[abc] 例子:o[usb]t ==> obt 、ost、 obt
范围
[a-z]、[0-9] 例子: id[0-9] id0 、 id1...
| 或,类似于js中的 ||
var reg = /abc|bbc|cbc|dbc/g
console.log(str.match(reg)); //打印字符串中的abc,bbc,cbc,dbc
var reg = /[a-c]bc/g
排除
[^a] 表示排除a
例子:[^0-9]
组合
[a-z0-9A-Z]
五、表达式:
[abc] 查找方括号之间的任何字符。
[0-9] 查找任何从 0 至 9 的数字。
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。
六、元字符
转义字符:
\d —— [0-9] 数字
\w —— [a-z0-9_] 数字,字母,下划线
\s —— 空白字符
\b -- 匹配单词边界
\D —— [^0-9] 非数字
\W —— [^a-z0-9_] 非数字,字母,下划线
\S —— 非空白字符
. 表示任意字符
七、量词
也叫限定符,可以指定正则表达式的一个给定组,必须要出现多少次才能满足匹配
通过量词可以设置一个内容出现的次数。注意点:量词只对它前边的一个内容起作用。 都是必须连续出现
{n}:匹配前一个字符正好出现n次
{n,}:匹配前一个字符出现n次以上,没有限制
{n,m}:匹配一个字符出现n到m次
*表示允许的次数是0 至 正无穷次,有没有都行
+表示允许的次数是1 至 正无穷次,至少有一个
? 表示允许的次数是0至1,最多出现1次
()表示一组
^开始 $结束