Javascript 使用正则表达式在至少一个数字后允许逗号
我需要一个正则表达式,允许在数字后加逗号。我试过了,但在编号后允许逗号122 我想: 12,323,232,2,232 1,1,1,1,1 123123,23231,2322 我不知道;我不想要: 12312,,,123,,2,32, 12312,123,12,,,,,123,12 我的代码是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,''); });
$(".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