我有下面的脚本,我用它来验证输入以验证没有文本的文本框,并且它也有用地加倍,只允许0到10之间的数字,最多3位小数。
$('.sourceValidation').keyup(function () {
if (!this.value.match(/^(([0-9]|10)(\.\d{1,3})?)?$/)) {
this.value = this.value.replace(/[^0-9\.]/g, '').substring(0,5);}})
我不完全确定这段代码,但是我如何重做它以便验证0到99之间的输入(仅限整数),没有文本,没有小数点。
答案 0 :(得分:2)
正则表达式只需要接受0到99而不需要任何其他内容
/^[0-9]{1,2}$/
这意味着:接受从'0'到'9'的数字,1或2次。
请注意,您的代码不包含任何jquery,这似乎是纯粹的javascript。 < - 编辑:我收回了。我的坏。
答案 1 :(得分:2)
答案 2 :(得分:1)
$('.sourceValidation').keyup(function () {
if (!this.value.match(/^([0-9]{0,2})$/)) {
this.value = this.value.replace(/[^0-9]/g, '').substring(0,2);
}
});
关键部分是从
更改正则表达式/^(([0-9]|10)(\.\d{1,3})?)?$/
到
/^([0-9]{0,2})$/
..这是一个允许0,1或2位数的正则表达式。但是它会允许前导零,例如01
,09
- 甚至00
。我不知道你的情况是否可以接受。
replace
函数说的是[^0-9]/g
- 这意味着 - 替换不是(^
)数字(0-9
)的任何内容并通过整个字符串执行( g
- 全球)。然后将其修剪为最多2个字符(substring(0,2)
)。
答案 3 :(得分:1)
请在下面找到jquery的工作版本
[http://jsfiddle.net/jQmR3/][1]
这允许用户仅键入数字 if($ .inArray(charpressed,alpha)> -1){ 返回false; } 您可以在阵列中添加需要允许的字符