我使用自定义指令将用户限制为十进制前的三个数字和十进制后的两个数字
我的指示
module.directive('decimalPlaces', function() {
return {
link : function(scope, ele) {
ele.bind('keypress', function(e) {
var newVal = $(this).val() + (e.charCode !== 0 ? String.fromCharCode(e.charCode) : '');
if (!(/^\d{1,3}(\.$|\.\d{1,2}$|$)/).test(newVal)) {
e.preventDefault();
}
});
}
};
});
但是当我在十进制之前使用退格并完全清除时,我无法再次进入。
我需要完全删除它,是否有任何特定的正则表达式模式。
例如,首先我输入125.45
然后在十进制之前退格并使其成为.45,那么我无法在.45之前添加任何数字
考虑点
答案 0 :(得分:0)
使用此正则表达式
if (!(/^\d{0,3}(\.\d{1,2})?$/).test(newVal)) {
e.preventDefault();
}
如您所说的格式,如果值为20
且应显示20.00
,则必须执行