【问题标题】:Regex for input with numbers and commas用于输入数字和逗号的正则表达式
【发布时间】:2021-11-23 00:12:48
【问题描述】:

我正在尝试限制输入数据。

我的目标:

  • 每个输入只允许两个符号:数字和逗号
  • 只有第一个符号的数字(零个或多个)
  • 数字数量不受限制(零个或多个)
  • 允许使用悬空逗号,但只能使用一个

测试用例:

  • 1,2,4 - ок
  • 1221,212,4121212 - ок
  • ,2,3 - 不是ок
  • 1,2,3, - ок
  • 11,21111,31111, - ок

我遇到过这样的事情,但它不能正常工作

/^\d*(,\d*)*$/.test(value)

感谢任何帮助!

【问题讨论】:

  • 试试/^\d+(?:,\d+)*,?$/(见demo)。
  • 谢谢!但是当我尝试删除时,它会在我的输入中保留第一个字母。是否可以使第一个字母为零或更多?
  • 也许你想使用/^(?:\d+(?:,\d+)*,?)?$/
  • 是的!非常感谢!你能发表你的答案吗?我认为它对其他人非常有用。

标签: javascript reactjs regex validation input


【解决方案1】:

你可以使用

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

请参阅regex demo详情

  • ^ - 字符串开头
  • (?:\d+(?:,\d+)*,?)? - 一个可选的非捕获组:
    • \d+ - 一位或多位数字
    • (?:,\d+)* - 零个或多个逗号和一个或多个数字序列
    • ,? - 可选逗号
  • $ - 字符串结束。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    相关资源
    最近更新 更多