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

Javascript regExp to accept 12 digits before decimal and two digits after decimal

本文关键字:小数 两位 12位 regExp Javascript      更新时间:2023-09-26

有人能告诉我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();
            }
          });
        }
      };
    })

这是您要查找的RegEx:/^'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>