【问题标题】:How implement regex for a textfield to allow one comma one space at a time in Extjs如何为文本字段实现正则表达式以在 Extjs 中一次允许一个逗号一个空格
【发布时间】:2019-12-13 22:28:17
【问题描述】:

我正在处理一个文本字段,以使其在任何情况下都只允许最大一个逗号和一个空格(最大)的数字。它可以接受像 "5,8"、"5 ,8" 和 "5 , 8" 这样的值。它不应一次允许两个或多个空格或逗号。

我尝试了下面的代码,但它不起作用。

this.regex = new RegExp('^\\d+(?\s\\d+)?(?:,\\d*(?\s\\d+)?)*$');

【问题讨论】:

  • 你好@The,我试过你的正则表达式,只是用 \s 替换了点,但我认为它需要更多的改变..
  • this.regex = /^\d+(?: ?(?:, ?)?\d+)*$/;this.regex = /^\d+(?:\s?(?:,\s?)?\d+)*$/; (demo)
  • 最多一个逗号,最多一个空格@WiktorStribiżew
  • 5 , 8中有2个空格
  • 然后/^\d+(?:(?: ,|, ?)?\d+)*$//^\d+(?:(?:\s,|,\s?)?\d+)*$/?见this demo

标签: javascript regex extjs javaquery


【解决方案1】:

这是一个相当简单的解决方案。

为了接受可能的字符,您可以使用?,它表示前一个字符恰好出现 0 次或 1 次。根据您的要求,正则表达式模式:

^\d+\s?,\s?\d+$

将允许 2 个数字(如果需要,可以使用多个数字),它们之间有逗号,可选空格。

查看regex101上的示例

在您共享的代码行中实现:

this.regex = new RegExp('^\\d+\\s?,\\s?\\d+$');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多