Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用正则表达式在至少一个数字后允许逗号_Javascript_Regex_Validation - Fatal编程技术网

Javascript 使用正则表达式在至少一个数字后允许逗号

Javascript 使用正则表达式在至少一个数字后允许逗号,javascript,regex,validation,Javascript,Regex,Validation,我需要一个正则表达式,允许在数字后加逗号。我试过了,但在编号后允许逗号122 我想: 12,323,232,2,232 1,1,1,1,1 123123,23231,2322 我不知道;我不想要: 12312,,,123,,2,32, 12312,123,12,,,,,123,12 我的代码是 $(".experience").keyup(function (e) { this.value = this.value.replace(/[^0-9\{0,9}]/g,''); });

我需要一个正则表达式,允许在数字后加逗号。我试过了,但在编号后允许逗号122

我想: 12,323,232,2,232 1,1,1,1,1 123123,23231,2322 我不知道;我不想要: 12312,,,123,,2,32, 12312,123,12,,,,,123,12

我的代码是

$(".experience").keyup(function (e) { 
    this.value = this.value.replace(/[^0-9\{0,9}]/g,''); 
});

如果我正确理解了您的问题,您希望删除任何不在数字后面的逗号,并删除除数字或逗号以外的任何字符。如果您的语言支持lookbehinds,这是相当简单的,但是在javascript中也不难。您可以使用下面的正则表达式匹配任何不正确的逗号,然后用$1替换它们

替换为:1美元

开头的任何逗号都应替换为空字符串 任何连续的逗号,即+应替换为单个逗号,即, 除数字或逗号以外的任何字符都应替换为空字符串 要组合这两个规则,^、+|、+将有助于匹配这两个规则,替换$1对应于捕获组1,该组仅在第2种情况下出现,因此它将用单个逗号替换多个逗号,即,+替换为,。而在第一个选项^,+中,它在开始时匹配逗号,第一个捕获组保持为空,因此它被替换为空字符串

下面是一个js演示:

$function{ $.experience.keyup函数e{ this.value=this.value.replace/^、+|、+|[^0-9、]+/g、$1'; }; };
这就是你要找的吗?我不习惯与正则表达式一起工作,但我成功地很快将其组合起来:

^([0-9]+\,?)*$

The questionmark is makes the comma optional.
[0-9] = numeric values only
+     = quantifier between 1 and unlimited
\     = escapes the character, so it's a constant
*     = quantifier between 0 and unlimited times
希望这有帮助


关于

你忘记粘贴正则表达式了。你不想,2也要以逗号开头,是吗?是的,在数字后面我不想有2个或更多的逗号。我的代码是:$.experience.keyupfunction e{this.value=this.value.replace/[^0-9\{0,9}]/g,;}^\d+?:,\d+*$更好。但这行不通。OP在keyup事件的replace函数中使用它。谢谢,但我应用了这个解决方案jquery keyup,但它不起作用不起作用意味着允许在数字后面加逗号,如1232、、、、、123、,您没有正确使用regex。我不确定您希望输入框的行为如何。你期望.replace函数做什么?谢谢@degant精确解决方案,但我不允许字符和特殊字符
^([0-9]+\,?)*$

The questionmark is makes the comma optional.
[0-9] = numeric values only
+     = quantifier between 1 and unlimited
\     = escapes the character, so it's a constant
*     = quantifier between 0 and unlimited times