正则表达式解析
Hz 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}