vue-正则写法形式

简介

vue中我们一般可以使用以下三种形式,前两种中每个输入框只能填写一个,如果我们是for循环出来的,我们使用第三种绑定module的形式。

一对一:html中直接replace(本次使用onkeyup事件)

    	 <van-field
              v-model="createNameDataList.managementNamevalue"
              :placeholder="fieldTipsInfo.placeholder"
              clearable
              :maxlength="fieldTipsInfo.maxlength"
              onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')"
         />

一对一 :使用指令正则


// *@描述:数字和小数点输入框指令
// *@版本:V1.0
// *@作者:herry
// *@Date:2020年5月21日09:04:11
// *@最后修改人:
// *@LastEditTime:

import Vue from "vue";

function onInput(el, ele, binding, vnode) {
    function handle() {
        // 只保留数字
        // ele.value = ele.value.replace(/[^\d]/g, "");
        ele.value = ele.value.replace(/[^\d.]/g, "");

    }

    return handle;
}
const numberInput = {
    bind(el, binding, vnode) {
        const ele = el.tagName === "INPUT" ? el : el.querySelector("input");
        ele.addEventListener("input", onInput(el, ele, binding, vnode), false);
    }
};
Vue.directive("number-input", numberInput);


// 使用方法:
// 
{/*
1.  import '../../api/Super/instruction/v-number-input'
2.  <van-field v-model="model" v-number-input></van-field> 
3.  data(){
    model:""
}
*/}

一对多:使用值正则

  1. vue 文件
<!--
*@描述:test
*@版本:V1.0
*@作者:herry
*@Date:2020年3月28日08:22:14
*@最后修改人:herry
*@LastEditTime:2020年3月28日08:22:14
*@说明:-->
<template>
  <div>
    <div id="textInput">
      <van-field
        v-for="index in 10"
        :key="index"
        :input="test(index)"
        v-model="testData[index].model"
      ></van-field>
    </div>

  </div>
</template>
<style scoped>
</style>
<script>
import regex from "../../tools/regular-expression/regex";
export default {
  data() {
    return {
      testData: [],
      }
  },
  mounted() {
    this.start();
  },
  methods: {
    start() {
      for (let index = 0; index < 12; index++) {
        this.testData.push({ model: "12345" });
      }
    },
    test(i) {
      this.testData[i].model = regex.isNumber(this.testData[i].model);
    }
  }
};
</script>

  1. js文件
export default {
    isNumber: function (str) {
        var reg = /[^\d.]/g;
        return str.replace(reg,"");
    },

    /*是否带有小数*/
    isDecimal: function (str) {
        var reg = /^\d+\.\d+$/;
        return str.replace(reg,"");
    },

    /*校验是否中文名称组成 */
    ischina: function (str) {
        var reg = /^[\u4E00-\u9FA5]{2,4}$/;   /*定义验证表达式*/
        return str.replace(reg,"");     /*进行验证*/
    },

    /*校验是否全由8位数字组成 */
    isStudentNo: function (str) {
        var reg = /^[0-9]{8}$/;   /*定义验证表达式*/
        return str.replace(reg,"");     /*进行验证*/
    },

    /*校验电话码格式 */
    isTelCode: function (str) {
        var reg = /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/;
        return str.replace(reg,"");
    },

    /*校验邮件地址是否合法 */
    IsEmail: function (str) {
        var reg = /^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/;
        return str.replace(reg,"");
    }
}


  /* 使用方法如下:
  import regex from "../../../tools/regular-expression/regex"; // 导入转移符html 

  this.str = escape.isNumber(str)
  
  */
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章