【懿瑾】JS的学习笔记⑦-正则表达式

104 阅读3分钟

7.正则表达式

7.1 基本方法&语法

7.1.1 创建正则表达式

 var reg = new RegExp("a");
  • 使用字面量创建正则表达式

语法: var 变量 = /正则表达式/匹配模式

  • Test()方法

    可以用来检查一个字符串是否符合正则表达式

符合返回true,否则返回flase

不区分大小写

 var reg = /A/i;     //不区分大小写

7.1.2包含,或,除了

 reg = /a | b/;      //查找是否有ab

[ ]里面的也是或的关系

[ab] == [a|b]

[a-z] 任意小写字母

[A-Z] 任意大写字母

[A-z] 任意字母

[0-9] 任意数字

 // 检查一个字符串中是否含有abc 或 adc 或aec
 reg = /a[bde]c/;

查找任何不在方括号之间的字符。

[^ ] 除了什么

 reg = /[^0-9]/;
 var result = reg.test("09");    //false

匹配模式:

i:忽略大小写

g:全局匹配模式(默认为1次)

7.1.3量词

通过量词可以设置一个内容出现的次数

只对它前面的一个内容起作用,多个字符就要用括号圈起来

语法描述
{n}正好出现n次
{m,n}出现m-n次
{m,}出现m次或m次以上(至少出现m次)
+至少一个,相当于{1,}
*0个或多个,有没有都行,相当于{0,}
0个或1个,相当于{0,1}
表示开头,^a 表示a开头
$表示结尾, a$ 表示a结尾
 // 检查一个字符串是否是一个合法的手机号
 var reg = /^1[3-9][0-9]{9}$/;
 var result = reg.test("18273445678")

7.1.4元符号

语法描述
.表示任意单个任意字符
\w任意字母,数字,“_”
\W除了字母,数字,“_”
\d任意的数字 //digital
\D除了数字
\s空格 //space
\S除了空格
\b单词边界
\B除了单词边界

检查特殊字符可以使用反斜杠转义

去除两边的空格

 var str = "       ad   min      ";
 str = str.replace(/^\s* | \s*$/g, "");

7.2 字符串与正则相关的方法

7.2.1 split()方法 分割

 // 使用正则表达式按任意字母拆分字符串
 var str = "1q2w3e4r5t6y7";
 var result = str.split(/[A-z]/);

这个方法不指定全局匹配,也会都拆分了

7.2.2 search()方法 搜索

和indexOf()差不多,不同的是它可以传正则表达式

 var str2 = "hello abc adc dwq afc aec";
 var result = str2.search(/a[def]c/);

search()不能全局匹配

7.2.3 match()方法 提取

根据正则表达式,从一个字符串中将符合条件的内容提取出来

默认情况下,match只会找到第一个匹配的内容,找到后就停止检索

我们可以设置正则表达式为全局匹配模式,这样就会匹配所有内容

可以为一个正则表达式设置多个匹配模式,且顺序无所谓

match会将结果封装到一个数组中

 // 使用正则表达式将字符串中的所有字母提取出来
 var str = "1q2w3e4r5t6y7A8B0C9";
 var result = str.match(/[a-z]/ig);

7.2.4 replace()方法 替换

可以将字符串中指定的内容替换成新的内容

参数:

  1. 被替换的内容,可以接收一个正则表达式作为参数
  2. 新的内容,可以是空串

默认只会替换第一个,也可以使用全局匹配模式

 // 使用正则表达式将字符串中的所有字母替换
 var str = "1q2w3e4r5t6y7A8B0C9";
 var result = str.replace(/[a-z]/ig,  "_");