正则表达式

正则表达式的作用:匹配特殊字符或有特殊搭配原则的字符的最佳选择

1.正则字符

".":匹配除了换行符(\n)和行结束符(\r),这两个字符之外其他的字符。

"\w":单词字符:匹配字母,数字,下划线.

"\W":非单词字符:

"\s"   匹配空白符的字符.空白字符都包括:空格符、制表符(\t)、回车符(\r),换行符(\n),垂直换行符(\v)、换页符(\f)。因此\s = [\n\t\r\v\f];

"\S"   匹配任意不是空白符的字符

"\d"  匹配数字的字符

"\D"  匹配任意非数字的字符

"\b"  匹配单词开头或结束的位置(边界)字符

"\B"  匹配不是单词开头或结束的位置(非边界)字符

匹配任意字符的话,就可以搭配起来使用了:[\s\S]、[\d\D]、[\w\W]等都可以

"[^abc]"  匹配除了abc以外的任意字符

符。
量词

以下的n代表一个变量,可以是表达式或者元字符。

1.n+     匹配至少一个变量n
2.n*     匹配至少零个变量n

var reg = /\w*/g;
var str = 'aabbbccc';
console.log(str.match(reg)); // ["aabbbccc", ""]最后有一个空串,因为前面的单词被\w*匹配出来,最后还有一个空字符可以被\w*0匹配出来。

3.n?    匹配0-1个变量n

var reg=/(aa|b)?/g;
var str = 'aaaaacb';
console.log(str.match(reg)); // ["aa", "aa", "", "", "b", ""]中间的空串是因为匹配了空串,?取0的情况。

4.n{x} 可以规定匹配x个变量n

并且大括号可以写一个区间,中间用逗号链接。

var reg = /a{1,4}/g;
var str = 'aaaaa';
console.log(str.match(reg)); // ["aaaa", "a"]这里默认的是贪婪匹配,即尽可能匹配多个字符。

当我们在后面加一个”?”之后,就会变成最小匹配,尽可能匹配少的字符。

var reg = /a{1,4}?/g;
var str = 'aaaaaa';
console.log(str.match(reg)); // ["a", "a", "a", "a", "a", "a"]

不只是{}后面可以加”?”,其他的比如*?、+?等等后面都可以加问号。

或者第二个范围不写,这样就代表到无穷的范围。

var reg = /a{1,}/g;
var str = 'aaaaa';
console.log(str.match(reg)); // ["aaaaa"]

5.n$    匹配以n结尾的字符
6.^n    匹配以n开头的字符,注意不是[]里面的^。

var reg = /^abc$/g;
//这种写法可以匹配固定字符串abc。

7.n(?=xxx)
正向预查(正向断言)

1 var reg = /x(?=abc)/g;
2 var str = 'xabcxbcdaabc'; 
3 console.log(str.match(reg)); // x

匹配后面是abc的n,匹配的是n,后面有abc是一种条件。
如果n是一个空,那么就查找后面是abc的a前面那个空串了。
8.n(?!xxx)  非正向预查   匹配后面不是abc的n
如果要匹配*、?等这些字符的话,就需要在前面加上一个转义字符“/”了。






 

posted @ 2018-07-24 17:41  StupidTom  阅读(164)  评论(0编辑  收藏  举报