有一个文本字段可以接受以下内容的场景,
10,+10,-10,+10.00,-10.00,+10.00%,-10.00%
。
我可以使用RegEx pattern="[-+]?[0-9]+(\.[0-9]{0,4})?%?"
检查模式。
但要求是限制用户在字段中输入错误的字符,而不是抛出错误。
Angular版本 - 1.6
答案 0 :(得分:0)
我自己只是轻松地使用,
<input type="number" min="-10" max="10" />
然后向用户表明他正在此字段中插入百分比。适用于移动用户。
否则我可能会构建某种状态机并为不同的解决方案构建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 }
});
})