当前位置: 首页 > 知识库问答 >
问题:

Regex允许最多10个数字,后面只有一个逗号和3个数字

边健
2023-03-14

我正在工作的一个regex只允许在逗号前最多10个数字和逗号后最多3个数字。

到目前为止,我已经想出了这个:

^[1-9]{1}[0-9]{1,9}(,[0-9]{0,3})?$.

我将验证JavaScript中的输入。

以下示例可作为用户输入:

1234567890,123
4,1
234,45
56457

输入必须始终以自然数字开头,并且只能出现逗号。

var input = oEvent.getSource().getValue();
        var isValid = false;
        var regex = /^[1-9]{1}[0-9]{1,9}(,[0-9]{0,3})?$/;
        isValid = regex.test(input);
        if (isValid == false) {
            //  oEvent.getSource().setValueState("Error");
            input = input.replace(/[^[1-9]{1}[0-9]{1,9}(,[0-9]{0,3})]/g,"");
            oEvent.getSource().setValue(input);
            return;
        }

共有1个答案

赫连靖琪
2023-03-14
^[1-9]\d{0,9}(,\d{0,3})?$
  • [1-9]-第一个数字必须是1-9
  • \d{0,9}-在第一个数字之后,可以有0-9个数字
  • \d{0,3}-逗号后面再加3个数字
  • ()?-逗号部分是可选的

在线尝试此操作:https://regex101.com/r/ysaxvo/1

 类似资料:
  • 我需要知道哪里出错了。当我在字符串中输入字母表时,它甚至接受它。任何帮助都非常感谢。在这里输入代码在这里输入代码

  • 我发现的大部分stackoverflow结果都是用于序列化整个对象或反序列化的。我的一些想法… 是否可以从三个值字段中删除@SerializedName并只序列化不为null的值? 我是否可以在java中构建某种可选的数据类型对象,该对象基于具有值的数据类型进行设置? 这个对象是一个更大的对象的一部分,而subitems对象有一个相当大的深度,它只是一个注释。我希望这是一个重复的问题,我只是找不到

  • 我想格式化一个数字到小数点后两位。假设用户输入了,它应该被格式化为。在javascript中是否有一些内置函数来实现这一点?

  • 我正在处理一个电话号码正则表达式,这是我到目前为止所拥有的: 它允许0到9之间的数字,也允许''和空白。范围必须在8到20之间。这工作罚款。 我想进一步得到的是,只有8到20个数字,其中“”和空格是分开的。 类似这样的内容: 建议?

  • 很抱歉标题不好,不知道该怎么写。无论如何,我正在使用ANTLR生成一个解析树。我正在尝试解析函数参数,这在某种程度上是可行的,但有一些事情我想更改,但我不确定如何更改。 这是我目前的设置: 这很好,很有效。但当我输入时说 它给我一个错误,一个我更愿意改变的结果。错误是它希望每个参数后面都有一个逗号,所以

  • 我正在尝试编写一个正则表达式以允许数字和中间只有一个hypen(不能在开始或结束时)说模式:,是可以接受的,但模式:或或或或是不可接受的 我试过这样做,但这将允许-在开始时,也允许多个- 我不太擅长正则表达式,所以一点解释会很有帮助。 编辑:很抱歉再次打扰你,但我需要的数字只有2位(123-346)应被视为无效。