正则表达式

发布于:2024-04-08 ⋅ 阅读:(181) ⋅ 点赞:(0)

1.创建正则:

        1.字面量形式

let reg = /^[a-z]{3}$/;

        2.构造函数形式

let length = 3;
let reg = new RegExp('^[a-z]{' + length + '}$');

区别:我暂时仅发现,字面量形式不支持插值,而构造函数支持

2.正则表达式的使用

        1.RegExp方法

                exec:返回一个数组(未匹配到则返回 null)

                        index:表示匹配结果在原始字符串中的起始位置、

                        input:表示被匹配的原始字符串

                         groups:如果正则表达式中使用了捕获组,匹配的结果字符串表示捕获组,由于我没使用所以为undefined。

let str = "SSFDS"
let length = str.length;
let reg = new RegExp('^[A-Z]{' + length + '}$');
console.log(reg.exec(str)); //[ 'SSFDS', index: 0, input: 'SSFDS', groups: undefined ]

                test:返回 true 或 false

let str = "SSFDS"
let length = str.length;
let reg = new RegExp('^[A-Z]{' + length + '}$');
console.log(reg.test(str));//true

        2.String方法

                match:返回一个数组(未匹配到则返回 null),各数据与exec类似

let str = "SSFDS"
let length = str.length;
let reg = new RegExp('^[A-Z]{' + length + '}$');
console.log(str.match(reg));//[ 'SSFDS', index: 0, input: 'SSFDS', groups: undefined ]

                search:返回匹配到的位置索引,在失败时返回 -1。

let str = "SSFDS";
let matches = str.search(/F/g);
console.log(matches); //2

                replace:使用替换后的字符串

let str = "SSFDS";
let matches = str.replace(/F/,"无");
console.log(matches);//SS无DS

 3.标记

       g:全局搜索。

        i:不区分大小写搜索。

        m:多行搜索.

        s:允许 . 匹配换行符

        u:使用 unicode 码的模式进行匹配

        y:执行“粘性 (sticky)”搜索,匹配从目标字符串的当前位置开始。

  4.限定符

        a* : a出现0次或多次

        a+ : a出现1次或多次

        a? : a出现0次或1次

5.元字符

        \d : 匹配数字字符

        \D :  匹配非数字字符

        \w : 匹配单词字符(字母,数字,下划线)

        \W : 匹配非单词字符

        \s : 匹配空白字符(换行符,空格符,\n,\r)

        \S : 匹配费空白字符      

        . : 匹配任意字符(出换行符)

        \b : 标注字符的边界

        ^ : 匹配行首

        $ : 匹配行尾


网站公告

今日签到

点亮在社区的每一天
去签到