我想使用以下代码验证文本框是否具有数值,但我不知道数字的过滤器术语,我的代码是:
function validateRequiredNumeric(Control, msgInfo) {
var ControlId = $('#' + Control);
var msgInfoId = $('#' + msgInfo);
//testing regular expression
var a = ControlId.val();
var filter = /[^\d]/;
alert(a.length);
if (a.length != 0) {
if (filter.test(a)) {
msgInfoId.text('');
ControlId.css({ 'border': '1px solid green' });
return true;
} else {
//msgInfoId.css({ 'color': 'red', 'font-size': '12px', 'font-style': 'italic' });
msgInfoId.text("Numeric Onlydd fdf dfd");
ControlId.css({ 'border': '1px solid red' });
return false;
}
}
else {
//msgInfoId.css({ 'color': 'red', 'font-size': '12px', 'font-style': 'italic' });
msgInfoId.text("You can't leave this empty.");
ControlId.css({ 'border': '1px solid red' });
return false;
}
}
请帮助我..我已经尝试了“ [^ 0-9] ”这也是..
答案 0 :(得分:1)
正则表达式应该是:
仅限数字/^[\d]+$/
对于任何非数字/^[^\d]+$/
我不确定你的问题是什么意思,因为你的regexp尝试是非数字的。
另一个答案让我想一想,如果你希望用户使用小数,你应该添加一些字符大小写......
小数/^[\d]+[,.]?[\d]*$/
在小数点前至少需要一个数字。
答案 1 :(得分:0)
尝试使用Texottela plugin,启用numeric()
函数,并且可以提供在焦点丢失且文本框中的值不是有效数字时运行的回调。
答案 2 :(得分:0)
我相信您正在寻找的术语是regular expression
这应该这样做:
var filter = /^\d*$/;
克拉^
符号将小数点缀到字符串的开头
$
符号将小数结合到字符串的末尾
并且\d*
匹配一个或多个小数值
如果字符串中有任何非小数,则正则表达式将返回false
答案 3 :(得分:0)
请关注this。它很好地解释了你在这里寻找的东西。
答案 4 :(得分:0)
你不需要那个正则表达式
var a = Number($.trim(controlID)); //or parseInt($.trim(controlID))
if (!isNaN(a)) {
//a is valid number
} else {
//a is not a number or is empty
}