正则表达式

文章目录

正则表达式

正则表达式( Regular Expression )是用于匹配字符串中字符组合的模式
在 JavaScript 中,正则表达式也是对象


一、正则表达式的创建

  1. 通过构造函数创建
    var regexp = new RegExp(/123/)
  2. 利用字面量创建 正则表达式
    var rg = /123/

二、测试正则表达式

.test() 正则对象方法,用于检测字符串是否符合该规则,该对象会返回 true 或 false

var rg = /123/;  var rg = /abc/;
rg.test(123);    rg.test('abc')


三、元字符(特殊字符)

参考 MDN 菜鸟工具

1. 边界符

正则表达式中用来提示字符所处的位置

  • ^ 表示匹配行首的文本(以谁开始)
  • $ 表示匹配行尾的文本(以谁结束)
  • /^123$/ 精确匹配,只能是123 的字符串才会匹配
    /123/ 这种是里面含有123的就匹配

2. 字符类

2.1 [] 方括号

表示有一系列字符可供选择,只要匹配其中一个就可以了

  • /[abc]/ 只要包含a or b or c 其中一个就匹配
  • /^[abc]$/ 只能有a or b or c 其中一个才匹配
  • [-] 方括号内部表示范围 /^[a-zA-Z0-9_-]$/
  • /^[^a-z]$/ 中括号中的 ^ 是取反

2.2 量词符

量词用于修饰前一个单位出现的次数

  • * 出现0次或更多次 /^a*$/
  • + 出现1次或更多次 /^a+$/
  • ? 出现0次或1次时返回 true /^a?$/
  • {n} 出现 n 次 /^a{3}$/
  • {n,} 出现 n 次或更多 /^a{3,}$/
  • {n, m} 出现 n 到 m 次
    /^a{3,8}$/ /^[a-z]{3,8}$/
    注意 :量词中 {} 内不能有空格

2.3 括号总结
  • 中括号 []
    一个中括号匹配一个字符,内部的元素多选一(或的关系)

  • 小括号 ()
    提升优先级
    /^abc{3}$/ 'abccc' 才为 true
    /^(abc){3}$/ 'abcabcabc' 才为 true

  • 大括号 {}
    量词


3. 预定义类

预定义类指的是某些常见模式的简写方式

  • \d 相当于 [0-9]
  • \D 相当于 [^0-9]
  • \w 相当于 [a-zA-Z0-9_] 任意字母数字下划线
  • \W 相当于 [^a-zA-Z0-9_]
  • \s 相当于 [ \n\r\v\t]
    空白字符(空格/换行/制表符/等空白字符)
  • \S 相当于 [^ \n\r\v\t]
  • . 除了换行以外的所有字符
  • | 或者符号

4. 修饰符

  • g 全局匹配 /123/g
  • i 忽略大小写

5. 正则替换replace

replace() 方法可以实现替换字符串操作,用来替换的参数可以是一个字符串或是一个正则表达式

字符串方法

  • replace() 替换
    .replace(/尼玛|草/g, '**')
  • match() 匹配后提取,返回数组(保存了匹配的数据)
  • split() 切割,支持传入正则(可以传多个分隔符)
上一篇:获得执行计划方法三-sql_trace


下一篇:ECC椭圆曲线算法(4)签名验证过程