HTML5,js正则表达式

HTML5,js正则表达式

1)正则表达式是一种表达文本模式

  • 字面量声明固定正则表达式,/正则匹配模式/修饰符
  • 构造函数声明动态正则表达式,new RegExp('正则匹配模式', '修饰符')

3)修饰符

  • i 表示忽略大小写
  • g 全局匹配
  • m 换行匹配

4)只读属性

  • ignoreCase 返回一个布尔值,表示是否设置了i修饰符,该属性只读
  • global 返回一个布尔值,表示是否设置了g修饰符,该属性只读
  • multiline 返回一个布尔值,表示是否设置了m修饰符,该属性只读

5)方法

  • test() 正则对象的test方法返回一个布尔值,表示当前模式是否能匹配参数字符串
  • exec() 正则对象的exec方法,可以返回匹配结果。如果发现匹配,就返回一个数组,成员是每一个匹配成功的子字符串,否则返回null
  • compile() 修改正则表达式

6)预定义模式

  • \\d 匹配0-9之间的任一数字,相当于[0-9]
  • \\D 匹配所有0-9以外的字符,相当于[^0-9]
  • \\w 匹配任意的字母、数字和下划线,相当于[A-Za-z0-9_]
  • \\W 除所有字母、数字和下划线以外的字符,相当于[^A-Za-z0-9_]
  • \\s 匹配空格(包括制表符、空格符、断行符等),相等于[\\t\\r\\n\\v\\f ]
  • \\S 匹配非空格的字符,相当于[^\\t\\r\\n\\v\\f ]
  • \\b 匹配词的边界
  • \\B 匹配非词边界,即在词的内部
  • . 查找所有字符,除了换行和行结束符

7)量词符

  • ? 问号表示某个模式出现0次或1次,等同于{0, 1}
  • * 星号表示某个模式出现0次或多次,等同于{0,}
  • + 加号表示某个模式出现1次或多次,等同于{1,}
  • n$ 匹配任何结尾为n的字符串
  • ^n 匹配任何开头为n的字符串
  • ?=n 匹配任何其后紧接指定字符串n的字符串
  • ?!n 匹配任何其后没有紧接指定字符串 n 的字符串

8)贪婪模式和懒惰模式

  • 贪婪模式 n.+ 或者 n.*
  • 懒惰模式 n.+? 或者 n.*?

9)组

  • 组匹配()内容
  • RegExp.$n 获取第n个()中匹配的内容,n是从1开始的自然数,必须test()验证之后执行

10)常用正则表达式

  • 验证数字(含小数、正负数) /^(-|\\+)?[1-9]?(0|([1-9]+\\d*))(\\.?\\d+)?$/
  • 验证邮箱 /^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/
  • 验证手机号 /^(\\+86)?1[3456789]\\d{9}$/
  • 必须含有大写字母,含有小写字母,含有数字 /(?=.*[A-Z]+)(?=.*[0-9]+)(?=.*[a-z]+)/

11)支持正则表达式的字符串API

  • matct() 用于确定原字符串是否匹配某个子字符串,返回一个数组,成员为匹配的第一个字符串。如果没有找到匹配,则返回null
  • search() 的用法等同于match,但是返回值为匹配的第一个位置。如果没有找到匹配,则返回-1
  • replace() 用于替换匹配的子字符串,一般情况下只替换第一个匹配(除非使用带有g修饰符的正则表达式
  • split() 按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组


分享到:


相關文章: