JavaScript--正则表达式

正则表达式

调用者: 正则表达式

参数: 字符串文本

返回值: 布尔值

功能: 判断字符串文本是否符合格式

目录

正则表达式

学习正则表达式的语法:

一) 内部类

1. 简单类 (允许字符串文本长度比正则格式的要多)   只多不少  

2. 预定义类

3. 范围类

4. 组合类

5. 负向类、反向类

二)边界语法

1.路径字符串

 三)量词 (指定格式的字符出现的次数)

1.{n}   表示指定格式的字符出现n次

2.匹配数字字符出现6次

3.{n,} 表示指定格式的字符出现n次以上

4.{n,m} 表示指定格式的字符出现n ~ m次

5.+ 表示出现1次以上   {1, }

6.? 表示0次或1次  {0,1}

7.* 表示0次或n次  {0,n}

四) 其他


学习正则表达式的语法:

一) 内部类

1. 简单类 (允许字符串文本长度比正则格式的要多)   只多不少  
//test()里要比//的要多,则为true
        var addr = 'http://www.xxxx.com';
        var r1 = /http/;
        var v1 = r1.test(addr);
        console.log("v1:", v1);//v1: true

        console.log(/hello/.test('hello world'));// true
        console.log(/hello/.test('hello'));// true
        onsole.log(/hello/.test('hell'));// false

2. 预定义类

“\”  这个反斜线表示转义

/\d/表示数字,/\D/表示非数字,/\s/表示空格,/\S/表示非空格   

        console.log(/d/.test('dddd'));// true   
//表示匹配字符 'd' ,只要文本中出现字符 'd' ,格式就是true
///\d/表示数字
        console.log(/\d/.test('dddd'));// false
        console.log(/\d/.test(2024));// true     
//表示匹配数字字符、只要文本中出现数字字符即可为true
        console.log(/\d/.test('123abc'));// true
        console.log(/\d/.test('abc'));// false

///\D/表示非数字
        console.log(/\D/.test('a'));// true  
//表示匹配非数字 、只要出现不是数字的字符格式就正确
        console.log(/\D/.test('a123'));// true  
        console.log(/\D/.test('456'));// false
        
///\s/表示空格
        console.log(/\s/.test("abc efg"));// true 
//表示匹配空格 、只要出现空格字符格式就正确
        console.log(/\s/.test("abcefg"));//false

///\S/表示非空格
        console.log(/\S/.test('abcdefg'));// true 
//表示匹配非空格  、只要有非空格字符出现格式就正确
        console.log(/\S/.test('   '));// false


///\w/表示匹配英文字母,数字,下划线_
//三选一,存在一个即为true
        console.log(/\w/.test('!!!!$$$$####'));// false   
//表示匹配英文字母、数字、 下划线'_' , 只要出现字母、数字、下划线格式就为true
        console.log(/\w/.test('a!!!!$$$$####'));// true
        console.log(/\w/.test('_!!!!$$$$####'));// true
        console.log(/\w/.test('1!!!!$$$$####'));// true

///\W/表示匹配非英文字母,非数字,非下划线_
//三选一,存在一个即为true
        console.log(/\W/.test('111='));// true  
//表示匹配非英文字母、非数字、 非下划线'_'

3. 范围类

[开始值-结束值]   

//表示匹配指定范围的字母,只要出现指定范围的字符格式就为true
        console.log(/[5-9]/.test('1236'));// true

//在5和9的范围内,test存在一个数字即可
        console.log(/[5-9]/.test('123'));// false  
        console.log(/[5-9]/.test('1236'));// true
        console.log(/[5-9]/.test('567'));// true

//在a和f的范围内,test存在一个即可
        console.log(/[a-f]/.test('abc'));//true
        console.log(/[a-f]/.test('xyz'));//false
        console.log(/[A-K]/.test('AAA'));//true
        console.log(/[A-K]/.test('aaa'));//false

//[\u4e00-\u9fa5]指的是中文,只要存在中文即可
        console.log(/[\u4e00-\u9fa5]/.test('张一一'));// true
        console.log(/[\u4e00-\u9fa5]/.test('张'));// true
        console.log(/[\u4e00-\u9fa5]/.test('zhang'));// false
        console.log(/[\u4e00-\u9fa5]/.test('zhang张'));//true

4. 组合类

        console.log(/\d/)  //表示匹配数字字符
        console.log(/[0-9]/)//表示匹配数字字符

//表示匹配数字、大小写字母, 只要出现数字字符或字母字符格式就是true
        console.log(/[0-9a-zA-Z]/.test(123));//true
        console.log(/[0-9a-zA-Z]/.test('abc'));//true
        console.log(/[0-9a-zA-Z]/.test('ABC'));//true
        console.log(/[0-9a-zA-Z]/.test('______'));//false


5. 负向类、反向类

有就是不符合格式,没有就是符合格式!!!!!

注意: 留心这个向上的箭头 “ ^ ”  是写在[]方括号中 才表示取反,否则不是!!!!

// 表示取相反的意思 (不是abc字符的意思), 只要出现不是‘abc’的字符结果就是true
        console.log(/[^abc]/.test('a'));// false
        console.log(/[^abc]/.test('ab'));// false
        console.log(/[^abc]/.test('abc'));// false
        console.log(/[^abc]/.test('abd'));// true
        console.log(/[^abc]/.test('abcx'));// true
        console.log(/[^abc]/.test('xyz'));// true

二)边界语法

1.路径字符串

       

        var path = 'https://www.baidu.com/logo.png';
// 表示匹配文本是否以“https”开始
        var r2 = /^https/
        console.log(r2.test('https://www.baidu.com/logo.png'));// true
        console.log(r2.test('file:'));// false
       
// 表示匹配文本是否以“.png”结束
        var r3 = /.png$/
        console.log(r3.test('https://www.baidu.com/logo.png'));// true
        console.log(r3.test('./css/base.css'));// false

// 表示匹配文本是否以“.png” 或者 “.jpg” 或者 “.gif” 或者 “.bmp”结束
        // “.” 在正则表达式中表示任意字符
        // “\.” 这表示一个点
        var r4 = /\.(png|jpg|gif|bmp)$/
        console.log(r4.test('https://www.baidu.com/logo.png'));// true
        console.log(r4.test('demo.jpg'));// true
        console.log(r4.test('demo.gif'));// true
        console.log(r4.test('demo.bmp'));// true

// 匹配以 “hello” 开头、以“world”结尾的字符
        var r5 = /^hello world$/;
        console.log(r5.test("hello world 123"));// false
        console.log(r5.test("hello world"));// true
        console.log(r5.test("hello wo"));// false

 三)量词 (指定格式的字符出现的次数)

1.{n}   表示指定格式的字符出现n次

        console.log(/^a{3}$/.test('aaa'));// true
        console.log(/^a{3}$/.test('aa'));// false
        console.log(/^a{3}$/.test('aaaa'));// false

2.匹配数字字符出现6次

        console.log(/^\d{6}$/.test(123456));//true
        console.log(/^\d{6}$/.test(12345));//false
        console.log(/^\d{6}$/.test(1234567));//false

3.{n,} 表示指定格式的字符出现n次以上

        console.log(/^a{3,}$/.test('aaa'));// true
        console.log(/^a{3,}$/.test('aaaaaa'));// true
        console.log(/^a{3,}$/.test('aa'));// false

4.{n,m} 表示指定格式的字符出现n ~ m次

        console.log(/^a{3,7}$/.test('aaa'));// true
        console.log(/^a{3,7}$/.test('aaaaaaa'));// true
        console.log(/^a{3,7}$/.test('aaaaaa'));// true
        console.log(/^a{3,7}$/.test('aaaaaaaaaaaa'));// false
        console.log(/^a{3,7}$/.test('aa'));// false

5.+ 表示出现1次以上   {1, }

        console.log(/^a+$/.test('a'));// true
        console.log(/^a+$/.test('aaa'));// true
        console.log(/^a+$/.test(''));// false

6.? 表示0次或1次  {0,1}

        console.log(/^a?$/.test('a'));// true
        console.log(/^a?$/.test(''));// true
        console.log(/^a?$/.test('aa'));// false
// .jpg 或者 .jpeg
// 例如图片格式的正则表达式: /\.jpe?g$/

7.* 表示0次或n次  {0,n}

        console.log(/^a*$/.test(''));//true
        console.log(/^a*$/.test('a'));//true
        console.log(/^a*$/.test('aaaa'));//true

四) 其他

/正则表达式/g        // 表示匹配所有字符串中所有字符

/正则表达式/i        // 表示忽略字符串中字母的大小写

        var text = "2024年10月01号";
// 要求:提取文本中的数字字符
        var regExp = /(\d{4}).(\d{2}).(\d{2})./;
        var result = regExp.exec(text);
        console.log(result);
        console.log(result[1]);
        console.log(result[2]);
        console.log(result[3]);
//分隔时间        
        var a = "[00:01.24]";
        var regExp =/\[(\d{2}):(\d{2}).(\d{2})\];
        var result = regExp.exec(a);
        console.log(result);

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值