【JavaScript】正则表达式常用元字符使用方法(实例)


一、基本元字符

1.\d

		//表示至少包含一位数字(0-9)
		var reg = /\d/;
		console.log(reg.test("abc")); //false
		console.log(reg.test("123")); //true

\d\d

		//至少包含两位数字
        var reg = /\d\d/;
        console.log(reg.test("abc")); //false
        console.log(reg.test("1")); //false

2.\D

		//至少包含一位非数字
        var reg1 = /\D/;
        console.log(reg1.test("abc")); //true
        console.log(reg1.test("123")); //false

3.\s

		//至少有一位空白(空格 缩进 换行(\n))
        var reg3 = /\s/;
        console.log(reg3.test("12 ")); //true
        console.log(reg3.test("12\n3")); //true,\n是换行

4.\S

		//至少包含一位非空白(空格 缩进 换行)
        var reg4 = /\S/;
        console.log(reg4.test("    1")); //true
        console.log(reg4.test("\n\n\n")); //false,因为换行全是空白

5.\w

		//包含字母、数字、下划线
        var reg5 = /\w/;
        console.log(reg5.test("12asasa_")); //true
        console.log(reg5.test("_")); //true
        console.log(reg5.test("12")); //true
        console.log(reg5.test("$")); //false

\w\w

		//至少包含两位字母、数字、下划线
        var reg5 = /\w\w/;
        console.log(reg5.test("12asasa_")); //true
        console.log(reg5.test("_")); //false
        console.log(reg5.test("12")); //true
        console.log(reg5.test("$")); //false

6.\W

		//至少包含一位非字母、数字、下划线
        var reg6 = /\W/;
        console.log(reg6.test("12asasa_")); //false
        console.log(reg6.test("_")); //false
        console.log(reg6.test("12")); //false
        console.log(reg6.test("$")); //true

7..

		//任意内容(不算换行)
        var reg7 = /./;
        console.log(reg7.test("%$!@")); //true
        console.log(reg7.test("_c?\n")); //true,除了换行还有其它内容
        console.log(reg7.test("\n")); //false,但不能只包含换行
        console.log(reg7.test("\n\n\n\n")); //false

8.\

		//转义字符
        var reg8 = /\d.\d/; //其中的.代表任意字符
        var reg9 = /\d\.\d/; //加上转义字符\转义成了普通的点
        console.log(reg8.test("2.34")); //true
        console.log(reg8.test("2#34")); //true
        console.log(reg9.test("2.34")); //true
        console.log(reg9.test("2a34")); //false,中间必须有. ,而不是任意字符


二、边界符

1.^

		//限制开头
        var reg = /^\d/; //必须以数字开头
        console.log(reg.test("3a1")); //true
        console.log(reg.test("ah3")); //false

2.$

		//限制结尾
        var reg1 = /\d$/; //必须以数字结尾
        console.log(reg1.test("3a1")); //true
        console.log(reg1.test("ah")); //false

3.用 ^$ 限制开头和结尾

        var reg2 = /^abc$/; //必须以abc开头,以abc结尾
        console.log(reg2.test("abc")); //true
        console.log(reg2.test("ahbc")); //false
        console.log(reg2.test("abch")); //false

三、限定符

1.*

		//代表0~n次
        var reg = /\d*/; //0个数字可以,1个或多个数字也可以
        console.log(reg.test("abc")); //true
        console.log(reg.test("sd12j3")); //true

2.+

		//代表1~n次
        var reg1 = /\d+/; //包含1个或多个数字
        console.log(reg1.test("abc")); //false
        console.log(reg1.test("s21dj3")); //true

3.

		//代表0~1次
        var reg2 = /\d?/; //
        console.log(reg2.test("abc")); //true
        console.log(reg2.test("1ab")); //true

4.{n}

		//指定次数
        var reg3 = /\d{3}/; //出现三次数字,三个数字连续
        console.log(reg3.test("abc")); //false
        console.log(reg3.test("1a2b3")); //false
        console.log(reg3.test("123ab")); //true

5.{n,}

		// 代表>= n次
        var reg4 = /\d{3,}/; //大于等于三个数字,三个数字连续
        console.log(reg4.test("abc12")); //false
        console.log(reg4.test("a12bc12")); //false,有四个数字但是不连续
        console.log(reg4.test("a123b")); //true
        console.log(reg4.test("ab123456")); //true

6.{n,m}

		//代表n~m次
        var reg5 = /\d{3,5}/; //3~5个数字
        console.log(reg5.test("abc12")); //false
        console.log(reg5.test("a123b")); //true
        console.log(reg5.test("ab123456")); //true,虽然超过5了但是也是true,但是exec()函数只能捕获5个数字


四、特殊符号

1.()

		//代表整体
        var reg = /(abc){3}/; //包含三组abc,并且连续
        console.log(reg.test("abcabcabc")); //true
        console.log(reg.test("abc213abcabc")); //false

2.|

		//代表或
        var reg1 = /a|b/; //包含a或b
        console.log(reg1.test("a213")); //true
        console.log(reg1.test("123b")); //true

3.[]

        var reg2 = /[abcdef]/;//在[]中存在一个以上就对
        console.log(reg2.test("xyz")); //false
        console.log(reg2.test("xyz123c")); //true,存在一个c

        var reg3 = /[abcdef]{3,5}/; //[]中的字母要出现3~5次才对
        console.log(reg3.test("ab")); //false
        console.log(reg3.test("efab")); //true
        
		//`[a-zA-Z0-9_]`包含大小写字母、数字、下划线,也就是基本元字符中的`\w`
        //同时`[0-9]`也就是基本元字符`\d`
        //`[^123]`只要有一个不在123范围内的就是true;^123表示必须以123开头,不带[]

五、exec()函数实例

exec() 方法用于检索字符串中的正则表达式的匹配,返回值是一个数组。

  • 使用方法如下:
		//exec()捕获片段
        var reg = /\d{3}/;//截取三个连续数字
        console.log(reg.exec("as1233km")); //'123'
  • 如何截取datestr中的年月日
 		var datestr = "time is from 2022-11-01 12:00:00 to 2022-12-01 12:00:00 ";
        var reg = /\d{4}-\d{1,2}-\d{1,2}/; //截取出年月日
        var newdatestr = reg.exec(datestr);
        //   console.log(newdatestr); //'2022-11-01'
        console.log(newdatestr[0].split("-").join("/")); //将连接符-换成/,结果是'2022/11/01'

  • 但是上面只能截取到第一个,加上全局标识符g,可以截取到第二个年月日
	  var datestr = "time is from 2022-11-01 12:00:00 to 2022-12-01 12:00:00 ";
      var reg = /\d{4}-\d{1,2}-\d{1,2}/g; //加上全局标识符g,可以截取到第二个年月日
      var newdatestr = reg.exec(datestr);
      console.log(newdatestr); //打印第一个日期:'2022-11-01'

      var newdatestr1 = reg.exec(datestr);
      console.log(newdatestr1); //打印第二个日期:'2022-12-01'


详细正则语法:https://www.baidufe.com/item/eb10deb92f2c05ca32cf.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

会举重的薯片

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值