javascript关于正则表达式

概述
正则表达式是用于字符串匹配的 (四个支持正则的方法 search 查找 下标 macth 查找 数组 split 切割 replace 替换)
1.正则表达式对象声明
1.1 new关键词声明
  • var regx = new RegExp("a")
1.2 字符模板 声明 (*)
  • g 全局搜索
  • i 忽略大小写
  • var regex = /a/gi
2. 正则表达式的使用
2.1 正则匹配元字符
  • [] 表示里面任意的一个元素
  • ^ 表示开头
  • $ 表示结尾
  • {} 表示个数
  • {n}表示n个
  • {n,m}表示n到m个
  • {n,}表示n到无穷个
  • + 表示一个到多个{1,}
  • * 表示0到多个{0,}
  • ? 表示0到一个{0,1}
  • . 表示所有的内容,包括中文字符
  • [.]表示字符.
        var regx2=/[a-z]{6}/  //表示6个小写的字母
        regx2=/[a-z]{0}/  //表示0个字母
        regx2=/[a-z]{1,3}/  //表示1到三个
        regx2=/[a-z]{1,}/  //表示1个到无穷个
        // + 1个到多个
        var regx=/^[abc]+$/  //表示其中一个元素
        console.log('a'.match(regx));//a
        console.log('ac'.match(regx));//ac
        console.log('abebc'.match(regx));//null
        console.log(regx.test(''));//false 至少要有一个a或b或c
        console.log(regx.test('aaebb'));//false 只能是能含a b c不能含有其他
        console.log(regx.test('abcabc'));//true
        //?  0到1个
        console.log('ab'.match(/^[a,b,c]?$/));//null ?只能0个或1个
        var regx1=/^[1234]?[abcd]$/
        console.log(regx1.test('a'));//true 只能有一个或多个
        console.log(regx1.test('2a'));//true 前面可以有一个或者没有
        console.log(regx1.test('ab'));//false a b c d里面只能有一个
        //* 0到多个
        regx=/^[123]+[456][789]*$/  //表示开头1 2 3至少有一个,4 5 6选一个,7 8 9表示可以有也可以没有
        console.log(regx.test('1235'));//true  1 2 3可以有多个
        console.log(regx.test('47'));//false 1 2 3必须要有一个
        console.log(regx.test('15'));//true 7 8 9可以有多个也可以一个都没有
        //. 表示所有内容
        regx=/^.$/
        console.log(regx.test('abc'));//false 只能有一个
        console.log(regx.test('h'));//true
        console.log(regx.test('好'));//true
        regx=/^[.]+$/
        console.log(regx.test('h'));//false [.]里面的设别为.
        console.log(regx.test('.'));//true
  • \w 表示对应的字母数字下划线
  • \W表示不是字母数字下划线
  • \d表示数组
  • \D表示非数字
  • \s表示空白字符串(回车 制表 空格)
  • \S表示不是空白字符
regx=/^\w[123]{2}\w+$/ //有数字或字母下划线开头 中间必须有两个1 2 3中的两个 结尾有一到多个数字或字母下划线
        console.log(regx.test('_11a'));//true 
        console.log(regx.test('a15'));//false 1 2 3中必须要有一个
        console.log(regx.test('a123'));//true
2.2()分组()括号里面的必须全都有
        regx=/^(\w\d\S){3}[0-9]+([123][456])+$/
        console.log(regx.test('123123123014'));//true
        console.log(regx.test('1231231230146'));//false
        console.log(regx.test('12312312312312345'));//false 结尾必须要有1 2 3中的一个,4 5 6中的一个
        console.log(/^[\w]+([123456])+$/.test('abc1'));//true
        console.log(/^[\w]+(123456)+$/.test('abc1'));//false  123456必须全都有
        console.log(/^[\w]+(123456)+$/.test('abc123456'));//true
2.3 | 或者 只要有一个就是对的
regx=/^a|b$/
console.log(regx.test('a'));//true
console.log(regx.test('b'));//true
console.log(regx.test('aa'));//true
2.4 转义
//匹配 ? * + . 等元字符 转义\
        regx=/^[?]$/
        console.log(regx.test('?'));//true
        regx=/^[*]$/
        console.log(regx.test('*'));//true
        //转义字符
        regx=/^\*$/
        console.log(regx.test('*'));//true
        regx=/^\?$/
        console.log(regx.test('?'));//true
        regx=/^\.$/
        console.log(regx.test('.'));//true

 

posted @ 2022-08-15 11:59  喜欢四季的春天  阅读(31)  评论(0编辑  收藏  举报