【问题标题】:Regex to validate size units like 10,10Gi,10.5Mi,10Ki?正则表达式验证大小单位,如 10、10Gi、10.5Mi、10Ki?
【发布时间】:2021-08-04 09:16:41
【问题描述】:
我正在使用此正则表达式 /\d+\.*\d*[KMG]i/gm 来验证具有 10Ki、10Mi 和 10Gi 等单位的大小,但我遇到了一个问题,我只想要这个数值以及 10、12、15 等任何值,但我当前的正则表达式只允许给定下面:
正则表达式:/\d+\.*\d*[KMG]i/gm
允许:14.4Mi、9.9Gi、10Ki
要求:14、14.4、14.4Mi、9.9Gi、10Ki
任何帮助将不胜感激。
谢谢
【问题讨论】:
标签:
javascript
reactjs
regex
validation
regex-group
【解决方案1】:
您需要使小数部分可选,最后的字母字符可选。您可以使用正则表达式中的问号来执行此操作:
\d+(.\d)?([KMG]i)?
满足您的所有要求
【解决方案3】:
您可以匹配点后的 1 个或多个数字,并使用单词边界来防止部分匹配:
\b\d+(?:\.\d+)?(?:[KMG]i)?\b
-
\b防止部分匹配的单词边界
-
\d+ 匹配 1+ 位
-
(?:\.\d+)? 可以选择使用非捕获组匹配 . 和 1+ 位
-
(?:[KMG]i)? 可选匹配K M Gfollowed byi`之一
-
\b一个字边界
Regex demo