条件正则表达式 - Javascript

时间:2016-02-18 13:17:09

标签: javascript regex conditional

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

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

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

匹配6到8位数之间的数字,但是如果你看到用下划线分隔的两个数字也匹配它们(不管每个数字中的位数)。

  

匹配:12345678

     

匹配:12345678934567_1234567890123456789

     

匹配:123_23

     

不匹配:12345

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

非常感谢。

3 个答案:

答案 0 :(得分:3)

尝试以下方法:

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

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

Click here看到它的实际效果。

答案 1 :(得分:1)

您可以使用此

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

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

  1. (\d+_\d+)涵盖" _"符号;

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

答案 2 :(得分:0)

你也可以尝试这个:

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

如果您想允许多个_字符,请尝试以下字符:

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

第二个也将与此匹配:12345678934567_1234567890_123456789