首页 > 代码库 > 正则表达式简单了解

正则表达式简单了解

1 什么叫正则表达式

一个表达式,以特定的规则来匹配字符串

也叫规则表达式

作用:

用来验证特定的字符串

如何使用正则表达式

2.1 构造函数的方式

new RegExp(pattern,[flag])

patten     :   正则表达式,可选

flag         :      匹配模式,可选

     //匹配某个字符串中出现一次a

       //可匹配:"456a"   "aabb"   "bac"

       var reg = new RegExp(/a/);

匹配模式可选以下几种:

g     全局匹配       把字符串中所有符合条件的字符都匹配一次

i      忽略大小写

m    多行匹配       可以让正则多行匹配

u     Unicode。把模式当作Unicode代码点(code points)的序列

//可以匹配: "A" "aAa"

       var reg = new RegExp(/a/,i);

细节:

第一个参数的表达式是没有双引号的,第二个是有双引号或者单引号的

2.2 字面量的方式

语法:

/匹配规则/

例如:

/a/

匹配字符串任意位置出现小写字母a

test方法

最常用

语法:

RegExpObj.test(string)

例如:

//匹配字符串中出出现连续的三个小写a

var reg = new RegExp(/a{3}/);

console.log(reg.test("aaac")); //true

console.log(reg.test("baaab"));//true

console.log(reg.test("aa"));//false

console.log(reg.test("AAA"));//false

返回值:布尔类型,表示是否匹配成功

match方法

语法

string.match(regexp)

返回值

数组,数组里包含匹配结果

若是没有匹配的结果则返回null

例子:

//匹配字符串中是否包含连续的三个小写a

console.log("aaabcdefaaaghjiy".match(/a{3}/));

结果:

["aaa", index: 0, input: "aaabcdefaaaghjiy"]

exec方法

语法:

regObj.exec(string)

作用、返回值等和match是一样的

3   正则表达式中的元字符

元字符

.      匹配除了\n\r以为的任意单个字符

\      转义字符   --  将某些已经具有特殊作用的字符变成普通字符

|      或者    --   前后的字符或者表达式出现之中一个

()     提升优先级和分组   --- 一般分组用的比较多

量词

?    0次或1次  {0,1}

+     1次或多次   {1,}

*      0次或多次   {0,}

{n}   出现n次

{n,}  至少出现n次

{n,m}      出现n次到m次

边界

^     开始   -- 以^后面的字符或者表达式开头  -- 严格匹配

$     结尾  -- 必须以$前面的字符或者表达式结束 -- 严格匹配

范围   --  使用短横线连接上限和下限,表示一个范围,也可以是多个字符组成的集合

[0-9]                     表示数字

[a-z]                     表示小写字母

[0-9a-zA-Z]   字母+数字

[abcABC]     多个字符组成的集合

[^0-9]            非数字

[^a-zA-Z]             非字母

预定义类

 \d  [0-9]              数字字符

 \D  [^0-9]     非数字字符

 \s   [\f\r\n\t\v]      空白字符

 \S  [^\f\r\n\t\v]    非空白字符

 \w  [a-zA-Z0-9_]        单词字符(所有的字母和数字)

 \W [^a-zA-Z0-9_]      非单词字符

正则表达式简单了解