js正则表达式禁⽌输⼊框输⼊特殊字符遇到的坑以及解决⽅案
前⾔
最近在项⽬中有⼀个需求是禁⽌输⼊特殊字符,⼀开始我是在⽹上的正则表达式直接⽤的,后来发现这个表达式同时也禁⽌了v,x,y,z,所以后来就想了⼀个⽐较笨的⽅法,把所有的特殊字符全部罗列出来,然后在匹配⼀下。最后在输⼊的时候禁⽌就好了。
项⽬都是在vue中的,所有⽅法都是在methods⾥边的。
step ⼀,正则表达式解决⽅案
⽤这种⽅式替换,会导致v,x,y,z输⼊不进去,亲测。
<el-input
placeholder="I'm "
v-model="searchVal"
id="right_radius_set"
@keyup.native="prohibit_input"
@native="toSearch"
>
<a slot="suffix" @click="toSearch">
<i class="el-input__icon el-icon-search"></i>
</a>
</el-input>
prohibit_input(){
if(this.searchVal != undefined){
this.searchVal =place(/[^u4e00-u9fa5w]/g,'')
}
},
step ⼆,把所有的特殊字符都匹配出来
这种⽅法就可以完美解决禁⽌输⼊特殊,⽬前线上没有发现问题
<el-input
placeholder="I'm "
v-model="searchVal"
id="right_radius_set"
@keyup.native="prohibit_input"
@native="toSearch"
>
<a slot="suffix" @click="toSearch">
<i class="el-input__icon el-icon-search"></i>
</a>
</el-input>
prohibit_input(){
this.searchVal =this.Prohibit_special_characters(this.searchVal)
},
Prohibit_special_characters(special){
var special_regular =new RegExp(
input框禁止输入"[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]"
)
var reflow_special =''
for(var i =0; i < special.length; i++){
reflow_special = reflow_special + special.substr(i,1).replace(special_regular,'') }
return reflow_special
},
结束语
开发中总是遇到奇奇怪怪的坑,所以还是要多多学习和总结。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。