正则表达式

  • 正则表达式工具


    image.png

(一)创建方法

  • 字面量方法
    var reg = /规则表达式/
  • 创建函数方法
    var reg = new RegExp(参数1,'i')里面有两个参数,第一个参数为匹配规则,第二个参数为匹配模式
    image.png
  • 字符串全局替换
    image.png

(二)常用匹配规则

  • 元字符
1. ^ 匹配字符串的开始
2. $ 匹配字符串的结束
3. 任意字符 .
4. \w 字母、数字、下划线
5. \s 任意空白字符
6. \d 匹配数字,等同于[0-9]
7. \D 匹配非数字,等同于[^0-9]
8. | 或匹配,如 /x|y/ 正则可匹配x或y两个字符
9. [abc] 表示 包含里面的任意一个
  • 反义字符
1. [^x] 匹配除“x”之外的所有字符,其中“x”可以为任意字符
2. [^xyz]   同上,匹配除“x、y、z”之外的任意字符
  • 重复匹配
1. ?重复出现零次或一次
2. + 重复出现一次或多次
3. * 重复出现零次或多次
4. {n}  重复出现n次
5. {n,} 至少重复出现n次
6. {m,n} 重复重现m到n次,其中,m
  • 组合
  1. 用括号分组
  2. 分组的应用

(三)字符串与正则相关的方法

        // 字符串与正则相关的方法
        var str = "1a2f3c4w0w3g"

        // split()  可以将一个字符串拆分为一个数组;方法中可以传递一个正则表达式作为参数
        console.log( str.split(/[A-z]/) ) //1,2,3,4,0,3
        // 即使不指定全局匹配也会全部拆分

        // search() 可以搜索字符串中是否含有指定内容(只会查找第一个)   返回值为索引   没有为-1
        console.log(str.search(/[acg]/)) 

        // match() 可以根据正则表达式聪字符串中将符合条件的内容提取出来
        console.log(str.match(/[A-z]/)); // a 默认情况下只会找到第一个符合要求的内容
        console.log(str.match(/[A-z]/g)); // ["a", "f", "c", "w", "w", "g"] 所有的字母 
        
        // replace() 可以将指定内容替换为新的内容; 1、被替换的内容:默认只会替换第一个  2、新的内容
        console.log(str.replace(/w/g,"")); 

(四)优先级

image.png
实例:
1. 写一个电话号码的正则表达式

   /^[1](([3][0-9])|([4][5-9])|([5][0-3,5-9])|([6][5,6])|([7][0-8])|([8][0-9])|([9][1,8,9]))[0-9]{8}$/

2. 登录的用户名: 8到20个字符,以字母开头,其他字符可以是字母,数字或者下划线

   /^[A-Z]\w{8,20}$/

3. 密码: 不低于6位,不高与16位,不能是纯数字,纯字母,必须有大小写

 /^(?![0-9]+$)(?![a-zA-Z]+$)(?![0-9A-Z]+$)(?![0-9a-z]+$)[0-9A-Za-z]{6,16}$/

你可能感兴趣的:(正则表达式)