js正则

作者: 一个写前端的姑娘 | 来源:发表于2018-10-29 15:24 被阅读0次

    今天就来屡屡js正则的那些事吧

    正则对象的定义

    1. 构造函数方式
    • 第一个参数是正则的内容,第二个参数是修饰符(i,g,m),其中i表示忽略大小写,g表示全部匹配,m表示多行匹配
      let reg = new RegExp(pattern, flags) // 第一个参数是字符串
    1. 字面量方式
    • 两个斜杠之间是定义正则内容的,最后一个斜杠之后是修饰符
      let reg = /pattern/flags // pattern是字面量
    1. 画重点,构造函数的字符串元字符需要转义,但是字面量的字符不需要转义
    • /[bc]at/(字面量) == "\[bc\]at"(字符串)
    • /name/age/(字面量) == "name\/age"(字符串)

    正则实例对象的属性

    1. global,布尔类型,表示正则表达式是否全局匹配,g
    2. ignoreCase,布尔类型,表示正则表达式是否忽略大小写,i
    3. multiline,布尔类型,表示正则表达式是否多匹配,m
    4. lastIndex,整数,表示开始搜索的位置,从0算起
    5. source,正则表达式的字符串表示

    正则实例对象的方法

    1. exec(),接受一个参数,应用模式的字符串,然后返回包含第一个匹配信息的数组(在没有匹配的情况下返回null)
    • 代码
    let text = "mom and dad and baby"
    let pattern = /mom( and dad( and baby)?)?/gi
    let match = pattern.exec(text)
    console.log(match)
    
    • match信息


      match打印信息.png
    • 分析
      match数组中第一项:匹配整个字符串
      第二项:包含与第一个捕获组匹配的内容
      第三项:包含与第二个捕获组匹配的内容
      index:因为第一项是从一个字符开始匹配的,所以index为0
      input:正则应用的字符串
    1. test(),接受一个字符串参数,返回ture或者false
    let text = "000-00-0000"
    var pattern = /\d{3}-\d{2}-\d{4}/
    console.log(pattern.test(text))  // true
    
    1. 除了正则对象的一些方法,字符串的一些方法参数中也可以使用正则表达式,
      string类型的search()、match()、split()、replace()等方法传入的参数也可以是正则,详情请见js中string类型基本用法

    常用的正则匹配

    1. 整数或者小数:
      ^[0-9]+\.{0,1}[0-9]{0,2}$
    2. 只能输入数字:
      ^[0-9]*$
    3. 只能输入n位的数字:
      ^\d{n}$
    4. 只能输入至少n位的数字:
      ^\d{n,}$
    5. 只能输入m~n位的数字:
      ^\d{m,n}$
    6. 只能输入有两位小数的正实数:
      ^[0-9]+(.[0-9]{2})?$
    7. 只能输入有1~3位小数的正实数:
      ^[0-9]+(.[0-9]{1,3})?$
    8. 只能输入非零的正整数:
      ^\+?[1-9][0-9]*$
    9. 只能输入非零的负整数:
      ^\-[1-9][]0-9*$
    10. 只能输入长度为3的字符:
      ^.{3}$
    11. 只能输入由26个英文字母组成的字符串:
      ^[A-Za-z]+$
    12. 只能输入由26个大写英文字母组成的字符串:
      ^[A-Z]+$
    13. 只能输入由26个小写英文字母组成的字符串:
      ^[a-z]+$
    14. 只能输入由数字和26个英文字母组成的字符串:
      ^[A-Za-z0-9]+$
    15. 只能输入由数字、26个英文字母或者下划线组成的字符串:
      ^\w+$
    16. 只能输入汉字:
      ^[\u4e00-\u9fa5]{0,}$
    17. 验证Email地址:
      ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
    18. 验证InternetURL:
      ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
    19. 验证电话号码:
      ^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
      正确格式为:"XXX-XXXXXXX"、"XXXX- XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
    20. 验证身份证号(15位或18位数字):
      ^\d{15}|\d{18}$

    感谢您的view,留个赞再走呗

    • 感谢浏览姑娘的文章,来自一个写前端的姑娘!

    相关文章

      网友评论

          本文标题:js正则

          本文链接:https://www.haomeiwen.com/subject/bulktqtx.html