首页 > 解决方案 > 如何为文本字段实现正则表达式以在 Extjs 中一次允许一个逗号一个空格

问题描述

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

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

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

标签: javascriptregexextjsjavaquery

解决方案


这是一个非常简单的解决方案。

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

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

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

请参阅regex101上的示例

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

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

推荐阅读