Javascript regExp 接受小数点前 12 位数字和小数点后两位数字

标签 javascript angularjs regex

谁能告诉我 javascript regEx 接受小数点前 12 个数字,小数点后只允许 2 位数字。如果数字没有任何小数,文本框应最多接受 12 个数字。该值应该是数字。 我已经有一个正在执行所有 javascript 验证的指令。请让我知道还应该添加什么。

指令-

.directive('allowOnlyDigits', function () {
    return {
        require: '?ngModel',
        scope: { currencycode: '=' },
        link: function(scope, element, attrs, ngModelCtrl) {
          if(!ngModelCtrl) {
            return; 
          }

          ngModelCtrl.$parsers.push(function(val) {
            if (angular.isUndefined(val)) {
                var val = '';
            }


            var decimalCheck = clean.split('.');

            if(!angular.isUndefined(decimalCheck[1])) {
                decimalCheck[1] = decimalCheck[1].slice(0,2);
                clean = decimalCheck[0] + '.' + decimalCheck[1];
            }

            if (val !== clean) {
              ngModelCtrl.$setViewValue(clean);
              ngModelCtrl.$render();
            }
            return clean;
          });

          element.bind('keypress', function(event) {
            if(event.keyCode === 32) {
              event.preventDefault();
            }
          });
        }
      };
    })

最佳答案

这是您要查找的正则表达式:/^\d{1,12}(\.\d{1,2})?$/

演示(自己尝试一下):

var input = document.getElementsByTagName("input")[0]
input.oninput = function() {
  document.getElementById("output").textContent = /^\d{1,12}(\.\d{1,2})?$/.test(input.value)
}
<input type="text" />
<div id="output"></div>

关于Javascript regExp 接受小数点前 12 位数字和小数点后两位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34656318/

相关文章:

javascript - 在sencha extjs Rest Web服务中使用POST方法发送数据

javascript - css 方形限制大小和位置到父 div

javascript - 使用标签选项提取数据

javascript - 是否有 Angular 的事件发布/订阅框架?

java - '(number)' 的正则表达式

javascript - 正则表达式查找前面没有特定字符的字符

javascript - 如何将坐标数组映射到 React Native map 标记中?

javascript - 调用时间密集型函数后,点击事件停止在 Firefox Mobile 上工作

jquery - 如何删除 |每个ajax (Jquery) 加载页面时的Html 脚本

javascript - 从数组中高效地或更有效地创建对象