JS正则表达式基础

JS正则表达式

1、语法(两种)

​ 1、/字符串/ 2、new RegExp(可以为变量);

/*
    1、/字符串/
    2、new RegExp(可以为变量);
    g  ---- 表示全局匹配
​
*/
​
/*
    测试的方法:
    正则.test(字符串)   返回布尔值
    字符串.match(正则)  把匹配到的放到一个数组里面
*/
​
var reg = /楠楠/g; //判断规则
var a = reg.test('我确定无疑都会楠楠下午');
console.log(a); //true

2、标识符(3个)

/*
    g       全局匹配
    i       不区分大小写
    m       换行匹配
    img     可以一起用没有先后顺序 i 和 m 和 g 的结合
*/
/*m*/
var str = 'AbcdeFGhijkaBc';
var reg = /(abc)/i;
var s = str.match(reg);
console.log(s);//[ "Abc", "Abc" ]
​
/*img*/
 var str = 'AbcdeFGhijkaBc' +
     'ABC,ABc';
var reg = /(abc)/img;
var s = str.match(reg);
console.log(s);//[ "Abc", "aBc", "ABC", "ABc" ]
​

3、特殊字符

转义字符:\ ---- 转义特殊字符

\s匹配空格/缩进
\S匹配非空格
\d匹配数字
\D匹配非数字
\w匹配字符(字母、数字、下划线)
\D匹配非字符
\b独立的单位 在起始位置 空格隔开 连词符(-)链接 结束为止
\D不独立

简写

.所有字符
^表示字符集开始为止
$表示结束位置
var str = '我就是你的最爱!';
var reg = /^我.+!$/g;
var a = str.match(reg);
console.log(a);//[ "我就是你的最爱!" ]

 

4、量词

​ 把前面的匹配规则重复​

a{x,y}匹配a ,x到y个都可以
a{x,}至少有x个,x个以上
a{x}一定要x个

量词的简写

{1,}+至少有一个
{0,}*有或者没有
{0,1}?没有或者有一个

 

5、字符集

字符集:可以是单独的数字、字母、下划线,或者字母的范围,永远只会匹配一个字符,当然有量词除外

[0-9]数字
[a-z]小写字母
[A-Z]大写字母
[0-9a-zA-Z]也是匹配一个字符:匹配0-9或者a-z或者A-Z或者_

6、子集:()和量词结合使用

var str = 'abccccd,abcef,abcabcabc';
var reg = /(abc){3}/g;

竖线的使用 | :字符集之外表示或,在子集里面也表示或

var str = "abccccd,abcdef,abcabcabc";
var reg = /a|b|c{3}/g;//在里面表示或
var reg2 = /(a|b|c){3}/g; //语法有误
consolelog(str.matcch(reg))

 

7、正则表达式的一些方法(两种)

1、str.search(正则):查找第一次出现的位置

var str = '_楠楠,你最踹了';
var reg = /楠楠/g;
var a = str.search(reg);
console.log(a);//1

2、str.replace(正则,回调函数/字符串/数字) ---- 替换

var str = '小科奥,你最踹了,我不爱你了,垃圾';
var reg = /垃圾|臭逼|毛线/g;
var str_2 = str.replace(reg,'**');//替换掉脏话
​

对应匹配替换

var str = prompt('请输入:');
var reg = /傻逼|垃圾/g;
var res = str.replace(reg,function(Shu){
    var s = '';
    for(var i=0;i<Shu.length;i++){
        s += '*';
    }
    return s;
})
console.log(res);

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冒险岛_0_

您的打赏是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值