Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何删除值的格式化掩码_Javascript_Angularjs_Angular Directive - Fatal编程技术网

Javascript 如何删除值的格式化掩码

Javascript 如何删除值的格式化掩码,javascript,angularjs,angular-directive,Javascript,Angularjs,Angular Directive,我想将格式化的maskeither“$”或“S/”删除到值中。我有两个角度指示。这些是和 在第二个指令中,符号根本不影响ng模型,而是影响ng-model的第一个指令。第一个指令删除符号,但如果文本框包含ng更改函数,则它调用ng更改函数,然后它将进入指令。因此,符号对ng模型有影响 第二个指令是符号对ng模型没有任何影响。像这样,我也需要第一个指令 第二项指令:- 第一项指令:- 如果我正确理解了您的问题,您希望删除$和/或S\。来自表示数字的字符串 希望这一切都能顺利进行: plainNum

我想将格式化的maskeither“$”或“S/”删除到值中。我有两个角度指示。这些是和

在第二个指令中,符号根本不影响ng模型,而是影响ng-model的第一个指令。第一个指令删除符号,但如果文本框包含ng更改函数,则它调用ng更改函数,然后它将进入指令。因此,符号对ng模型有影响

第二个指令是符号对ng模型没有任何影响。像这样,我也需要第一个指令

第二项指令:-

第一项指令:-


如果我正确理解了您的问题,您希望删除$和/或S\。来自表示数字的字符串

希望这一切都能顺利进行:

plainNumber.replace(/(\S\/\.|\$)/g, '');

第一个指令是删除符号。但是,如果文本框包含任何事件,如ng change,则它调用ng change,然后调用指令。因此,天然气变化对天然气模型产生了影响。如果您遵守第二条指令。它对ng模型没有任何影响,即使它包含ng更改。您需要将函数设置为过滤器,或者为变量添加一个手表,每次值更改时,您都必须重新运行替换函数。我对angular比较熟悉,您能给我一个plnknr示例吗
app.directive('format', ['$filter', '$compile', function($filter, $compile) {
    return {
      require: 'ngModel',
      scope: {
        val: '=val'
      },
      link: function(scope, elem, attrs, ctrl) {

        if (!ctrl) return;
        ctrl.$formatters.unshift(function(a) {

          if (attrs.symbol == '$')
            return $filter(attrs.format)(ctrl.$modelValue, '$')
          else
            return $filter(attrs.format)(ctrl.$modelValue)
        });

                scope.$watch(function() {
            return elem.val()
        }, function(newVal, oldVal) {
          var a = newVal;
          var plainNumber = a.split('.').filter(function(e) {
            return (e.length > 0);
          }).join('.');
          var i = 0;
          if (isNaN(parseFloat(plainNumber))) {
            i = (attrs.symbol == '$') ? 1 : 3;
          }
          var num = plainNumber.substring(i, plainNumber.length).replace(/,/g, '');
          if (attrs.symbol == '$')
            elem.val($filter('currency')(num, attrs.symbol));
          else
            elem.val($filter('currency')(num));
          var n = parseFloat(num);
          scope.val = Number(n);
          if (!scope.$$phase) {
            $compile(elem.contents())(scope)
          }
        });
      }
    };

    // controller 
  }])
plainNumber.replace(/(\S\/\.|\$)/g, '');