正则表达式解析

11/8/2021 正则表达式
  • 正则表达式的定义共有两种:显示定义隐式定义
// \d是正则表达式的元字符,用于匹配数据,相当于[0-9]
var myregex = new RegExp("[0-9]"); // 显示定义
var myregex = /[0-9]/; // 隐试定义
  • 何谓定位符?即限定某些字符出现的位置
    ^ 表示必须以某字符开头;$ 表示必须以某字符结尾

  • 何谓限定符?即限定某个字符或某类字符出现的次数
    * 表示重复 0 次或任意次数
    ? 表示重复 0 次或至多 1 次
    {n} 表示重复 n 次
    {n,m} 表示重复 n-m 次

  • 何谓分组?分组又称之为子表达式,即把一个正则表达式的全部或部分分成一个或者多个组
    分组使用的字符为 () 。每一个子表达式都可以当一个整体来处理

  • 其他

[...] 是正则表达式的 元字符它会匹配方括号中所有字符
| 是正则表达式中的 选择符,用于二选一

# 二、小数点后保留两位小数

 ^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){0,2})?$

# 2.1、拆分

不管定位符和限定符,共可分为两组
第一大组 (([1-9]{1}\d*)|([0]{1}))
第二大组 (\.(\d){0,2})

# 2.2、拆分第一大组

(([1-9]{1}\d*)|([0]{1}))

第一部分 ([1-9]{1}\d*)

[1-9]{1} 表示 1-9 之前的数字只能出现一次,保证大于0

\d* 表示 0-9 之间的数字可以出现任意次

第二部分 |

整数部分的两种情况,首位是0和首位不是0。如 0.13 5.12

第三部分 ([0]{1})

([0]{1}) 首位只能是0,只能有一个0。

一个字符没必要使用 [] 可以直接写 (0{1})

第一大组匹配了整数部分的情况,大于0还是小于1的数

# 2.3、拆分第二大组

(\.(\d){0,2})

第一部分 \.

. 是正则表达式中的 元字符。会匹配除换行符意外的任意字符

此处需要匹配小数点,需要使用 \ 反斜杠将它进行转义

第二部分 (\d){0,2}

匹配小数点后 0位或2位小数

如果要保留两位小数,可修改限定符 \.\d{2}





Last Updated: 11/16/2021, 5:51:06 PM