RegExp

RegExp对象

作用

  • 检查一个字符串是否符合规则
  • 将字符串中符合规则的内容提取出来

创建正则对象

使用new关键字

语法

let 变量名 = new RegExp("正则表达式","匹配模式")

匹配模式

  • i:忽略大小写
  • g:全局匹配
  • ig:忽略大小写且全局匹配

Eg.

//检查一个字符中是否有a
let reg = new RegExp("ab","i");
let str = "Abc";
let result = reg.test(str);
console.log(result);

RegExp_第1张图片

使用字面量创建

语法

let 变量名 = /正则表达式/匹配模式

匹配模式

  • i:忽略大小写
  • g:全局匹配模式
  • m:执行多行匹配
//检查一个字符串中是否有a
let reg = /a/i;
let str = "Abc";
let result = reg.test(str);
console.log(result);

RegExp_第2张图片

基础

使用|表示或者的意思

//检查一个字符串中是否有b或c
let reg = /b|c/i;
let str = "Abc";
let result = reg.test(str);
console.log(result);

RegExp_第3张图片

使用[]表示多个|的意思

常见组合

  • [a-z] 任意小写字母

  • [A-Z] 任意大写字母

  • [A-z] 任意字母

  • [0-9] 任意数字

// 这个正则表达式可以来检查一个字符串中是否含有abc或adc或aec
let reg = /a[bde]c/;
let str = "abc123";
let result = reg.test(str);
console.log(result);

RegExp_第4张图片

  • [^a-z] 除了任意小写字母
  • [^A-Z] 除了任意大写字母
  • [^A-z] 除了任意字母
  • [^0-9] 除了任意数字
// 这个正则表达式可以来检查一个字符串中是否除了数字还有其它字母
let reg = /[^0-9]/;
let str = "0123456789a";
let result = reg.test(str);
console.log(result);

RegExp_第5张图片

正则方法

字符串的内置方法,需要传递正则表达式作为参数

split()

作用

将一个字符串拆分为一个数组,传递一个正则表达式作为参数,该方法会根据正则表达式去拆分字符串

例子

let str = "1a2b3c4d5e6f7";
let result1 = str.split(/[0-9]/);
let result2 = str.split(/[A-z]/);
console.log(result1);
console.log(result2);

RegExp_第6张图片

search()

作用

搜索字符串中是否含有指定内容,如果有则返回第一次出现的索引,如果没有就返回-1
接受一个正则表达式作为参数

例子

//检查字符串中是否有abc,aec或afc
let str = "hello abc hello aec afc";
let result = str.search(/a[bef]c/);
console.log(result);

RegExp_第7张图片

match()

作用

根据正则表达式从一个字符串中将符合条件的内容提取出来,默认情况下我们的match()只会找到第一个符合要求的内容,找到以后就停止检索,若设置正则表达式为全局匹配模式,这样就会匹配到所有的内容,可以为一个正则表达式设置多个匹配模式,且顺序无所谓,match()会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果。

例子

//检查字符串中是否有小写字母
let str = "1a2a3a4a5e6f7A8B9C";
let result = str.match(/[a-z]/ig);
console.log(result);

RegExp_第8张图片

replace()

作用

根据正则表达式,将匹配的内容替换成传入的字符串

例子

//替换小写字母
let str = "1a2a3a4a5e6f7A8B9C";
let result = str.replace(/[a-z]/gi, ".");
console.log(result);

RegExp_第9张图片

量词

通过量词可以设置一个内容出现的次数,量词只对它前边的一个内容起作用,如果有多个内容可以使用 () 括起来

{n}

正好出现n次

let str = "abc"
let reg = /(ab){3}/
console.log(reg.test(str));

RegExp_第10张图片

{m,}

至少出现m次及以上

let str = "abb"
let reg = /b{2,}/
console.log(reg.test(str));

RegExp_第11张图片

{m,n}

出现m到n次之间

let str = "abb"
let reg = /a{1,3}/
console.log(reg.test(str));

RegExp_第12张图片

+:相当于{1,}

*:相当于{0,}

?:相当于{0,1}

其他常用

检查开头结尾

  • ^ : 检查字符是否以`开头

  • $ : 检查字符是否以`结尾

let str = "abcabca";
let reg1 = /^a/;
let reg2 = /a$/;
console.log(reg1.test(str));
console.log(reg2.test(str));

RegExp_第13张图片

  • \w :任意字母、数字、,相当于[A-z0-9]
  • \W :除了字母、数字、,相当于[^A-z0-9]
  • \d :任意的数字,相当于[0-9]
  • \D :除了任意的数字,相当于[^0-9]
  • \s :空格
  • \S :除了空格
  • \b :单词边界
  • \B :除了单词边界

你可能感兴趣的:(javascript)