【发布时间】:2020-06-19 00:54:55
【问题描述】:
我有几个正则表达式,我打算合并它们。 所以第一个正则表达式如下(允许带有特定千位和小数分隔符的金额)
"^-?(\\d+|\\d{1,3}(,\\d{3})*)?(\\.(\\d+)?)?$"
我有类似的其他正则表达式(基于不同的语言环境,例如,另一个将逗号作为小数分隔符)
因此,使用上述正则表达式,以下是有效/无效值
123.11 (Valid)
1'23 (Invalid)
使用第二个正则表达式,我希望字符串最多可以包含 13 位数字(包括小数点之前或之后)
^[^\\d]*?(\\d|\\d[^\\d]+){0,13}$
使用上述正则表达式,以下是有效/无效值
1234567890123 (Valid - 13 digits)
12345678901234 (Invalid - 14 digits)
1234567890.123 (Valid as 13 digits...10.3)
1234567890.1234 (Invalid as 14 digits...10.4)
是否有可能以某种方式合并 2 正则表达式? 但是,我不想触及第一个正则表达式(根据不同的语言环境有不同的组合)。但是以某种方式将第二个正则表达式动态附加到第一个正则表达式中会很好吗?
所以,我对第二个正则表达式很灵活,因为它不基于任何语言环境,但将始终相同,主要验证字符串中最多 13 位数字。
然后我将使用合并的正则表达式验证我的字符串。
【问题讨论】:
-
coz,否则我必须编写一些额外的逻辑来验证我目前常用的正则表达式验证方法中的 2 个单独的正则表达式......我试图不触及该方法,而是有一个合并的正则表达式来验证...
-
为什么不直接做
regex1.test(value) && regex2.test(value)?我不明白您为什么要动态组合它们。这是可能的,但容易出错,而且比简单地使用两者要困难得多。 -
实际上,有很多事情......但我正在使用 cp 验证库并设置我的对象,然后在我有逻辑的地方有一个通用/自定义的正则表达式混合......所以,有点难以解释为什么我不能直接做 && 检查
标签: javascript regex