最近在项目中有一个需求是禁止输入特殊字符,一开始我是在网上找的正则表达式直接用的,后来发现这个表达式同时也禁止了 v,x,y,z ,所以后来就想了一个比较笨的方法,把所有的特殊字符全部罗列出来,然后在匹配一下。最后在输入的时候禁止就好了。

项目都是在vue中的,所有方法都是在methods里边的。

step 一, 正则表达式解决方案

用这种方式替换,会导致 v,x,y,z 输入不进去,亲测。

    <el-input
          placeholder="I'm shopping for..."
          v-model="searchVal"
          id="right_radius_set"
          @keyup.native="prohibit_input"
          @keyup.enter.native="toSearch"
          <a slot="suffix" @click="toSearch">
            <i class="el-input__icon el-icon-search"></i>
        </el-input>
    prohibit_input() {
       if (this.searchVal != undefined) {
        this.searchVal = this.searchVal.replace(/[^u4e00-u9fa5w]/g, '')

step 二, 把所有的特殊字符都匹配出来

这种方法就可以完美解决禁止输入特殊,目前线上没有发现问题

    <el-input
          placeholder="I'm shopping for..."
          v-model="searchVal"
          id="right_radius_set"
          @keyup.native="prohibit_input"
          @keyup.enter.native="toSearch"
          <a slot="suffix" @click="toSearch">
            <i class="el-input__icon el-icon-search"></i>
        </el-input>
    prohibit_input() {
      this.searchVal = this.Prohibit_special_characters(this.searchVal)
    Prohibit_special_characters(special) {
      var special_regular = new RegExp(
        "[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]"
      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

开发中总是遇到奇奇怪怪的坑,所以还是要多多学习和总结。

前言最近在项目中有一个需求是禁止输入特殊字符,一开始我是在网上找的正则表达式直接用的,后来发现这个表达式同时也禁止了v,x,y,z,所以后来就想了一个比较笨的方法,把所有的特殊字符全部罗列出来,然后在匹配一下。最后在输入的时候禁止就好了。项目都是在vue中的,所有方法都是在methods里边的。step 一, 正则表达式解决方案用这种方式替换,会导致v,x,y,z输入不进去,亲测。 &lt;el-input placeholder="I'm shopping f
不能输入!@#¥%……&* 这种字符的正则表达式书写: /[@#\$%\^&\*]+/g 这个是包含以上任意一个特殊字符。取! 即可 alert(!/[@#\$%\^&\*]+/g.test(“test”)) 返回 false 就代表不包含非法字符 . PS:关于正则表达式,这里再提供2款本站的在线正则表达式工具供大家参考使用(包括常用正则的生成、匹配、测试等): JavaScript正则表达式在线测试工具:http://tools.jb51.net/regex/javascript 正则表达式在线生成工具:http://tools.jb51.net/regex/create_reg function checkval(t) { var re = /^[\u4e00-\u9fa5a-z]+$/gi;//只能输入汉字和英文字母 if (re.test(t)) { return true; } else { return false;  js正则表达式,验证同一字符串不同 var num = 888; var reg = /^[1-9]{1}[0-9]*$/g; console.log(reg.lastIndex);//0 <input onkeyup="this.value=this.value.replace(/[^u4e00-u9fa5w]/g,'')">; 2.JS 控制文本框只能输入数字 <input onkeyup="value=value.replace(/[^0-9]/g,'')" onpaste="value=value.replace(/[^0-9]/g,'')" oninput = "value=value.replace(/[^0-9]/g,'')
function (even) { // 规则对象(flag) var flag = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>《》/?~!@#¥……&*()——|{}【】‘;:”“'。,、? ]") // 判断 even 是否包含特殊字符 if(flag.test(even)){ console.log('包含!') }else{
其中取反正则表示 ^((?!需要取反的内容).)* ^((?!([\^~@&$#%*'<>|\(\)])|(!=)|(--)|(\.\.)|(select|update|and|or|delete|insert|trancate|char|into|substr|ascii|declare|exec|count|master|drop|execute)).)* 只允许输入大于0的数字,小数点后面最多俩位 ^([1-9]\d?(\.\d{1,2})?|0.\d{1,2}|1...
var regEn = /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im, regCn = /[·!#¥(——):;“”‘、,|《。》?、【】[\]]/im; if(regEn.test(labelName) || regCn.test(labelName)) { alert("名称不能包含特殊字符."); return;
一、正则表达式 1、正则表达式概述 ​ 正则表达式( Regular Expression )是一种用于匹配字符串中字符组成的模式,用来检测某个字符串的组成是否符合某种要求或规则,通常用来验证表单:例如验证用户名只能由英文字母、数字、下划线组成。而且,正则表达式还可以用来替换页面中的一些敏感词,或者从字符串中获取我们想要的特定部分字符串。 ​ 在 JavaScript 中,正则表达式也是一种对象。目前在 JS 中我们主要是用正则表达式来进行表单验证。 2、正则表达式的特点 ​ ① 灵活性、逻辑性和功能
JS正则表达式可以用来限制输入框中文字符。一般情况下,JS正则表达式可以通过匹配字符来判断输入框中文字符是否符合要求。 例如,可以通过以下代码来检查输入框中只能输入中文字符: function validateInput(input) { var reg = /^[\u4e00-\u9fa5]+$/; if (!reg.test(input.value)) { alert("输入框中只能输入中文字符!"); input.value = ""; input.focus(); return false; return true; 以上代码中,使用了正则表达式“/^[\u4e00-\u9fa5]+$/”,其中“^”表示匹配输入字符串的开始,“[\u4e00-\u9fa5]”表示匹配所有中文字符,“+”表示匹配字符串1次或多次,“$”表示匹配输入字符串的结尾。 当输入框输入的字符不符合要求时,会弹出一个提示框,清空输入框中已输入的字符,并将输入框焦点聚焦到该输入框中,让用户重新输入。 需要注意的是,以上代码只能限制输入框输入中文字符,如果需要限制输入框输入其它字符,需要相应修改正则表达式。另外,也需要考虑到用户可能会通过其它方式输入非中文字符的情况,如复制粘贴等操作。