【问题标题】: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)?
    

    满足您的所有要求

    【讨论】:

      【解决方案2】:
      \d+(.\d)?([KMG]i)?
      

      此正则表达式将满足您的所有要求。

      仅供参考,您可以在https://regex101.com/ 上使用正则表达式

      【讨论】:

        【解决方案3】:

        您可以匹配点后的 1 个或多个数字,并使用单词边界来防止部分匹配:

        \b\d+(?:\.\d+)?(?:[KMG]i)?\b
        
        • \b防止部分匹配的单词边界
        • \d+ 匹配 1+ 位
        • (?:\.\d+)? 可以选择使用非捕获组匹配 . 和 1+ 位
        • (?:[KMG]i)? 可选匹配K M Gfollowed byi`之一
        • \b一个字边界

        Regex demo

        【讨论】:

        • 感谢分享,这真的很有用。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-07
        相关资源
        最近更新 更多