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,留个赞再走呗

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

相关文章

  • 正则初解

    title: js验证常用正则表达式date: 2017-03-03 验证 正则表达式 本文介绍js验证常用的正则...

  • JS正则表达式

    JS正则表达式一条龙讲解,从原理和语法到JS正则、ES6正则扩展,最后再到正则实践思路 Stinson 关注 20...

  • 正则详解--程序员必备

    转自: JS正则表达式一条龙讲解,从原理和语法到JS正则、ES6正则扩展,最后再到正则实践思路 温馨提示:文章很长...

  • 前端学习资源整合(二)

    正则 正则 地址JS正则表达式元字符 http://segmentfault.com/a/119000000247...

  • JS基础

    JS基础 JS运算 JS代码块 JS对象 原型对象 GC 正则表达式

  • js 正则表达式

    js 正则表达式

  • JavaScript基础 JavaScript正则表达式

    JS正则表达式:

  • JS正则表达式

    js正则表达式 https://segmentfault.com/a/1190000002471140 正则表达式...

  • JS正则表达式

    @(javascript)[js正则表达式] [toc] JS正则表达式 正则表达式一直是一个令人头疼但却又是十分...

  • 火星文RegExp

    正则基本不陌生 JS中通过RegExp来创建 正则在JS中非常的成熟 创建 可以使用perl的语法var exp...

网友评论

      本文标题:js正则

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