正则表达式

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)”搜索,匹配从目标字符串的当前位置开始。

注意:如果正则表达式有粘性 y 标志,下一次匹配一定在 lastIndex 位置开始;如果正则表达式有全局 g 标志,下一次匹配可能在 lastIndex 位置开始,也可能在这个位置的后面开始。

意味着使用他俩,会导致指针移动

  4.限定符

        a* : a出现0次或多次

        a+ : a出现1次或多次

        a? : a出现0次或1次

5.元字符

        \d : 匹配数字字符

        \D :  匹配非数字字符

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

        \W : 匹配非单词字符

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

        \S : 匹配费空白字符      

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

        \b : 标注字符的边界

        ^ : 匹配行首

        $ : 匹配行尾

  • 14
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值