我是靠谱客的博主 谦让小丸子,这篇文章主要介绍js中正则表达式验证_在input中限制只可以输入数字且去重,现在分享给大家,希望可以做个参考。

e8dda35fa7f1316970e49f6f5a13360c.png

一、需求:

    input中限制只可以输入数字且限制长度、去重

二、遇见问题:

     在input中,设置成type=“number”类型,maxlength会失效

三、解决方案:

    1、在input 使用type="text"类型,使用js正则表达式,达到限制数字的输入;

    2、使用filter过滤器去重

    3、把现有的数字转成数组,使用数组遍历方式,把数组的每一项重新赋值,使用Array.from方式去重,但是这种方法会出现按字母键和空白键的时候会把字母转化成0(所以不太推荐)

四、代码附上

(一)、使用js正则表达式和filter过滤器去重(代码少且不会出现太多问题)

//input 只允许输入数字,且去重    isCheckNumber(key) {        //使用正则        let vals = this.slI[key].replace(/[^d]/g,'');        //去重        let resVal = [].filter.call(vals,(s,i,o)=>o.indexOf(s)==i).join('');        this.slI[key] = resVal;    },
(二)、现有的数字转成数组方式
//html vue项目的写法"text" :maxlength=placeholder="请输入..." @on-keyup="keyup(this,'hundred')" style="width: 300px">input>//js代码keyup(e,key){      let val = this[key];      if ( typeof val === 'string'){        let arr = val.split('') ; //arr是数组        this.forEach(arr,function(item,index){            if(isNaN(item)){              arr.splice(index,1);             }            else {              arr[index] = +arr[index]            }        });        if(arr.length === 0) {          this[key] = '';          return          }        arr = Array.from(new Set(arr));        this[key] = Number(arr.join(''));      }    },

以上仅是个人遇到困难,然后通过度娘找到解决方案,网上各种解决方案,找到最终的解决方案(作为个人笔记)。

最后

以上就是谦让小丸子最近收集整理的关于js中正则表达式验证_在input中限制只可以输入数字且去重的全部内容,更多相关js中正则表达式验证_在input中限制只可以输入数字且去重内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部