逗号分隔的数字正则表达式 - 接受管道字符

时间:2015-06-03 12:57:00

标签: javascript regex

我为javascript写了一个小的正则表达式。它只应接受以逗号分隔的数字。

有效的例子是:

1 single value allowed
1,278,3780,50
1,56,90, (trailing comma allowed)

无效的例子是:

1,45 67

1, gj, + (any special character and characters)

正则表达式是:/^[\d|\,]+/g

然而,它也接受| (管道人物)。

Like: 1|46|6778|567

我做错了什么?我错过了什么? 请关注此link到我的正则表达式

4 个答案:

答案 0 :(得分:4)

您不需要管道(|)并在字符类中转义字符。另外,您可以使用以下正则表达式:

 /^(?:\d+\,)+\d+$/g

Regular expression visualization

Debuggex Demo

如果我错过了您的编辑,如果尾随逗号是有效的案例,您只需使用以下正则表达式:

^(\d+,?)+$

答案 1 :(得分:1)

试试这个 -

^\d+\,(?:\d+\,?)+$

Demo

修改
随着要求的变化 -

^\d+(?:,\d+)*,?$

Demo here

答案 2 :(得分:1)

匹配以逗号分隔的数字:

(\d+,?)+

答案 3 :(得分:1)

正确的正则表达式如下:

colorPrimary

这将符合指定的情况:

  • 单个号码(public class Foo { @JsonSerialize(using = MyCustomSerializer.class) public Bar bar; } public class Bar { } public class MyCustomSerializer extends JsonSerializer<Bar> { @Override public void serialize(Bar value, JsonGenerator jgen, SerializerProvider serializers) throws IOException, JsonProcessingException { // get Foo ?? } }
  • 以逗号(^\d+(?:,\d+)*,?$
  • 分隔的一系列数字
  • 可选的尾随逗号(11,2,3