第十五天

69 阅读3分钟

正则的创建

正则的创建方式:
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() 方法用于检测一个字符串是否匹配某个模式. 返回truefalse
​
比如检测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次

()表示一组

^开始 $结束