条件正则表达式 - Javascript

conditional regex - Javascript

我想删除包含 6 到 8 位数字的数字,所以我使用的正则表达式是: \b\d{6,8}

它工作正常,但是,如果我有两个数字用下划线 (_) 分隔,例如 1234567890_12345678901234567890 我也想删除它。 我必须使用 \b(边界)。

对我来说这似乎是一个条件:

匹配 6 到 8 位数字之间的数字,但如果您看到用下划线分隔的两个数字也将匹配它们(无论每个数字中的位数是多少)。

match: 12345678

match: 12345678934567_1234567890123456789

match: 123_23

no match: 12345

我需要一个处理这两种情况的正则表达式。

非常感谢。

尝试以下操作:

\b(?:\d{6,8}|\d+_\d+)\b

它只是 6 到 8 位数字或任何 number_number。

Click here 观看实际效果。

你可以用这个

^(\d+_\d+)|(\d{6,8})$

这个正则表达式包含两部分:

  1. (\d+_\d+) 涵盖带有“_”符号的案例;

  2. (\d{6,8})涵盖其他案例

你也可以试试这个:

\b\d+(?:\d{4,6}|_)\d+\b

如果您想允许多个 _ 个字符,试试这个:

\b\d+(?:\d{4,6}|_[\d_]*)\d+\b

第二个也会匹配这个:12345678934567_1234567890_123456789