正则表达式

  • 用于定义一些字符串的规则
  • 计算机可以根据正则表达式,来检查一个字符串是否符合规则
  • 获取,将字符串中符合规则的内容提取出来

对象创建正则表达式

语法:

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

使用typeof 检查正则对象,会返回 object

var reg = new RegExp("a"); //这个正则表达式可以检查一个字符串中是否含有a
var reg = new RegExp("a","i"); //构造函数中可以传递一个匹配模式作为第二个参数

i: 忽略大小写

g:全局匹配模式

var result = reg.test(str);//检查是否符合正则表达式规则。是返回true,否返回false

字面量创建正则表达式

语法:

var 变量 = /正则表达式/匹配模式 ;

总结:

字面量创建正则表达式,更简单。

构造函数创建,更加灵活。

书写正则表达式:

| :表示或的意思

//创建一个表达式检查字符串中是否含有 a或b
var reg = /a|b/i;
console.log(reg.test("asdfsa"));//true

[]:中括号中的内容,也是或的关系

[ab] ===a|b
[a-z] 任意的小写字母
[A-Z] 任意的大写字母
[A-z] 任意的字母
[0-9] 任意的数字

检查是否含有 abc 或 aec 或 adc

reg = /a[bde]c/;

[^ab]:如果有 除ab之外的字符,返回true;否则false

reg = /[^ab]/;
console.log(reg.test("abc")); //true

正则表达式和字符串

split(regexp/substr)【自带全局匹配】

  • 可以将一个字符串拆分为一个数组
  • 方法中可以传递一个正则表达式作为参数,这样方法将会根据正则表达式去拆分字符串
var str = "345s35 dgft4gdfdf4";
var result = str.split(/[A-z]/); //根据任意字母来将字符串拆分

search(regexp/substr)【只会返回第一个出现的索引,即使设置g

  • 可以搜索字符串中是否含有指定内容
  • 如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到则返回 -1
  • 可以接受一个正则表达式作为参数,然后会根据正则表达式去检索字符串
//搜索字符串中是否含有 abd,aec,afc
result = str.search(/a[bef]c/);

match(regexp/substr)

  • 可以根据正则表达式,从一个字符串中将符合条件的内容提取出来
  • 默认情况下我们的match只会找到第一个符合要求的内容,找到以后就停止检索

    • 可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容
    • 可设置多个匹配模式,顺序无所谓
  • match()会将匹配到的内容封装到一个数组中返回,即使只查到一个结果
str = "1a2b3csdfhDKJF";
var result = str.match(/[a-z]/gi);
console.log(result);
console.log(typeof result);// object 
console.log(Array.isArray(result)); //true
console.log(result[0]);//a

replace(regexp/substr , replacement)

  • 使用replacement替换substr
  • 如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。

正则表达式语法

量词

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

量词只对它前边的一个内容起作用

{n} :正好出现 n 次

{m,n} :出现 m-n 次

{m,} :出现 m 次以上

+ :至少一个,相当于 {1 ,}

* :0个或者多个,相当于{0,}

? :0个或1个,相当于{ 0 , 1}

^ :表示开头

$ :表示结尾

() :括号里面的是一个整体

reg = /^(xxx)$/;  //同时使用^ $则要求字符串必须完全符合正则表达式

转义字符

在正则表达式中使用 \作为转义字符

  • \.表示.
  • \\ 表示\

在正则对象构造函数中,参数是一个字符串,而\是字符串中的转义字符。

  • \\表示\

. :表示任意字符

var reg = /\\/; //检查字符串中是否含有 \
=====> var reg = new RegExp("\\\\");
var reg2 = /\./;//检查字符串中是否含有 .
====> var reg2 = new RegExp("\\.");

RegExp(str) ====转义===> reg 字面量 ====转义===> 真正表达的意思

\w :字母,数字,_ [A-z0-9_]

\W :除了 字母,数字,_ [^A-z0-9_]

\d :任意的数字 [0-9]

\D :除了数字 [^0-9]

\s :空格

\S :除了空格

\b :单词边界 : 寻找单词hello ====> reg =/\bhello\b/ ;

\B :除了单词边界

最后修改:2022 年 01 月 15 日
如果觉得我的文章对你有用,请随意赞赏