快速学会正则表达式

目录

一、正则表达式的基本知识

1.匹配特殊位置

2.字符集

3.预定义字符集

 4.量词

二、正则表达式常用函数

1、.test()

2、.replace()

3、.match()

4、.trim()  


一、正则表达式的基本知识

        专门描述字符串中字符出现规则的表达式。

        常用正则表达式:http://www.codece.com/archives/273

1.匹配特殊位置

 ^  开始的位置

 $  结束的位置

  两者同时使用可以实现从头到尾的完整匹配

2.字符集

    [ ]     字符可选范围

Eg:[3-9]表示这位数可以是3到9中间任意一个数字。

        [A-Z]表示这位数可以是A到Z中间的任意一个字符。

同理,[a-z]表示这位数可以是a到z中间的任意一个字符。

3.预定义字符集

        对及其常见的字符集进行了简化

简化前

简化后

[0-9]

\d

[0-9a-zA-Z]

\w

匹配空白字符,例如:空格、tab键、回车...

\s

Eg:电话号码格式:以1开头,第二位是3-9之间的任意一个数字,其余是0-9之间的数字,有11位。

简化前:/^1[3-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$/

用预定义字符集简化后:/^1[3-9]\d\d\d\d\d\d\d\d\d$/

 4.量词

          规定一个字符连续出现的次数。( 使用中括号{} )

量词表达 含义
{n} 出现n次
{n,m} 最少n次,最多m次。(包括n和m)
{n, } 最少n次,多个不限

Eg:还是电话号码格式,上面通过 预定义字符集简化后得:/^1[3-9]\d\d\d\d\d\d\d\d\d$/;

通过量词还可以简化成:/^1[3-9]\d{9}$/

(因为手机号后九位都是0到9的任意数字,\d表示0到9,出现九次,通过量词表示为{9} ,所以后9位表示为\d{9} )

二、正则表达式常用函数

1、.test()

表示字符串的匹配,输出布尔型。

x.test(y):表示在y中匹配x,有字符串x则返回true,没有则返回false。

const pattern = /hello/;

const str = "hello world";

console.log(pattern.test(str)); // 输出 true

2、.replace()

表示字符串的替换,输出替换后的字符串。

x.replace(a,'b'):表示在字符串x中,把a替换成b。

replace(/正则表达式/ig, 替换的字符)      查找并替换  i忽略大小写  g全局查找

const pattern = /hello/;

const str = "hello world";

console.log(str.replace(pattern, "hi")); // 输出 "hi world"

3、.match()

表示字符串的提取。

const pattern = /(\d{4})-(\d{2})-(\d{2})/;

const str = "2022-01-01";

const match = str.match(pattern);

console.log(match[1]); // 输出 "2022"

console.log(match[2]); // 输出 "01"

console.log(match[3]); // 输出 "01"

4、.trim()  

表示去除两端的空格,中间的空格不受影响。        

        var str='    手机 手机   '
        console.log(str)
        //1、去除两端空格,不影响中间的空格
        console.log(str.trim()) //输出手机 手机
       
        // 练习:去除一个字符串中所有的空格(把空格替换成空白字符串'')
        var str='    手机 手机   '

         //去除字符串中所有的空格
        console.log(str.replace(/\s+/g,''))
        // 去除开头的空格
        console.log(str.replace(/^\s+/g,''))
        // 去除结尾的空格
        console.log(str.replace(/\s+$/g,''))
        
        //2、屏蔽敏感词
        var str=`
        aaaaaaaa我  草zzzzzzzzzzzz
        a
        aaaaaa卧 槽zzz
        aaaaWocaozzz
        `
        // str.replace(查找的词,替换的词),其中查找的词可以用正则表达式/  /g,(g表示全局查找)
        
        // console.log(str.replace('我草','**'))
        // console.log(str.replace(/我草|卧槽|wocao/g,'**'))
        // 忽略大小写用i ;(g是全局查找);忽略中间空格,无论多少个空格,用\s*或者\s{0,}。*表示0个或多个
        console.log(str.replace(/我\s*草|卧\s*槽|wo\s*cao/ig,'**'))

猜你喜欢

转载自blog.csdn.net/qq_61214252/article/details/130569076