Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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 要限制的文本字段不是(+;-0-9%)_Javascript_Angularjs - Fatal编程技术网

Javascript 要限制的文本字段不是(+;-0-9%)

Javascript 要限制的文本字段不是(+;-0-9%),javascript,angularjs,Javascript,Angularjs,文本字段可以接受以下内容的场景, 10、+10、-10、+10.00、-10.00、+10.00%、-10.00% 我可以使用RegExpattern=“[-+]?[0-9]+(\.[0-9]{0,4})?%?”检查模式 但要求是限制用户在字段本身键入错误字符,而不是抛出错误 Angular版本-1.6我自己只需要简单的方法和使用 然后只需向用户指示他正在该字段中插入百分比。对移动用户也很有效 否则,我可能会构建某种状态机,并为不同的解决方案构建json结构。然后在regexp上运行它 doc

文本字段可以接受以下内容的场景,
10、+10、-10、+10.00、-10.00、+10.00%、-10.00%

我可以使用RegEx
pattern=“[-+]?[0-9]+(\.[0-9]{0,4})?%?”
检查模式

但要求是限制用户在字段本身键入错误字符,而不是抛出错误


Angular版本-1.6

我自己只需要简单的方法和使用

然后只需向用户指示他正在该字段中插入百分比。对移动用户也很有效

否则,我可能会构建某种状态机,并为不同的解决方案构建json结构。然后在regexp上运行它

document.getElementById('input').addEventListener('keydown',function(event){
  event.preventDefault();
  var stateTree = {
   0 : ['-','+','[0-9]'],
   ... //  basicly declare here possible regexp's per length
   5 : ['[+|-]10\.0']  // could be doing quiet specific one's
  };

  var text = this.value +''+ event.key;
  var array = stateTree[text.length];
  array.map( function(item){
    const match = new RegExp(item, 'g');
    if( text.match(match) ){ this.value = text }
  });

})

您好,如果这是要求,并且您对此有问题,那么您应该发布处理该特定任务的代码。现在它只是-为我做所有的编码。