【vue】vue +element 搭建项目,el-input 常用的验证
1.el-input 常用布局
<el-input class="filter-item dialog-search" size="small"
@keyup.enter.native="searchBtn"
v-model.lazy.trim="searchKey"
@change="check"
:placeholder="请输入关键字" >
<el-button slot="append" icon="el-icon-search" @click.native="searchBtn"></el-button>
</el-input>
2.input的限制条件
①只能输入大于0的整数
check(value) {
    let reg = /^[1-9]\d*$/;
    var _this = this;
    if (value) {
        if (new RegExp(reg).test(value) == false) {
            setTimeout(() => {
                _this.actionDataForm.studNum = '';
_this.errorTip = true;
        }, 500); }
       else { 
      this.errorTip = false; 
    } 
  } 
}, 
form表单验证中只能输入整数(方法一)
布局:
<el-form-item label="充值余额:" prop="charge_money" >
<el-input placeholder="1-999999" size="small" v-model.number ="ruleForm.charge_money" @input="computedBalance" style="width: 238px;"></el-input> 元
</el-form-item>
js:
var checkBalance = (rule, value, callback) => {
    if (!value) {
        return callback(new Error('充值余额不能为空'));
    }
    setTimeout(() => {
        if (!Number.isInteger(value)) {
            callback(new Error('请输入数字值'));
        } else {
            if (Number(value) > 999999) {
                callback(new Error('请输入1-999999的数字'));
            } else {
                callback();
            }
        }
    }, 1000);
};
form表单验证中只能输入整数(方法二,麻烦)
布局:
<el-form-item label="充值余额:" prop="charge_money" >
<el-input placeholder="1-999999" size="small" v-model ="ruleForm.charge_money" @input="computedBalance" style="width: 238px;"></el-input> 元
</el-form-item>
js:
var checkBalance = (rule, value, callback) => {
    let reg = /^[1-9]\d*$/;  //整数
    let reg2 = /^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$/;  //小数
    if (!value) {
        return callback(new Error('充值余额不能为空'));
    }
    setTimeout(() => {
        if (!reg.test(value)) {
            if (reg2.test(value)) {
                callback(new Error('请输入整数'));
            } else {
                callback(new Error('请输入符合规则的数字'));
            }
        } else if (Number(value) > 999999) {
            callback(new Error('请输入1-999999的数字'));
        } else {
            callback();
        }
    }, 1000);
};
②只能输入数字(整数,浮点数)
check() {
    let reg = /[^\d\.]/g;
    if (this.searchKey && new RegExp(reg).test(this.searchKey)) {//非数字
        this.$message({
            message: '请输入正确的数字',
            type: 'warning'
        })
        return;
    }
    ...
    ...
},
③手机号验证
checkMobile (number) {
    var partten = /^(13[0-9]|14[0-9]|15[0-9]|16[6]|18[0-9]|19[6,9]|17[0-9])\d{8}$/i;
    return partten.test(number);
},
④邮箱验证
var checkEmail = (rule, value, callback) => {
    if (!value) {
        return callback();
    }
    if (value) {
        setTimeout(() => {
            var reg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
            if (!reg.test(value)) {
                callback(new Error('请输入有效的电子邮箱!'));
            } else {
                callback();
            }
          }, 500);
      }
}
⑤将输入框的内容全角转为半角
var ToCDB = function(str){
    var tmp = "";
    for(var i=0;i<str.length;i++)
    {
        if(str.charCodeAt(i)>65248&&str.charCodeAt(i)<65375)
        {
            tmp += String.fromCharCode(str.charCodeAt(i)-65248);
        }else {
            tmp += String.fromCharCode(str.charCodeAt(i));
        }
    }
    return tmp
}    
⑥名称字数限制(30个中文字符长度)
nameLimt (){
    var reg = /[!@#$%^&*??\/\\“::;~+]/;
    this.companyName = this.companyName.replace(reg,'')    ;
    var GetLength = function (str) {
        //获得字符串实际长度,中文2,英文1
        var realLength = 0, len = str.length, charCode = -1;
        for (var i = 0; i < len; i++) {
            charCode = str.charCodeAt(i);
            if (charCode >= 0 && charCode <= 128) realLength += 1;
            else realLength += 2;
        }
      return realLength;
    };
     /**
    * js截取字符串,中英文都能用
    * @param str:需要截取的字符串
    * @param len: 需要截取的长度
    */
    var cutstr = function(str, len) {
        var str_length = 0;
        var str_len = 0;
        var str_cut = new String();
         str_len = str.length;
        for (var i = 0; i < str_len; i++) {
            var temp = str.charAt(i);
            str_length++;
            if (escape(temp).length > 4) {//中文字符的长度经编码之后大于4
                str_length++;
            }
            str_cut = str_cut.concat(temp);
            if (str_length >= len) {
             return str_cut;
         }
       }
        //如果给定字符串小于指定长度,直接返回
         if (str_length < len) {
           return str;
      }
    }
    if(GetLength(this.companyName) > 60){
        this.companyName = cutstr(this.companyName, 60);
        return;
    }
}    
⑦只能输入正整数和负整数
let reg = /^(0|[1-9][0-9]*|-[1-9][0-9]*)$/;
⑧以字符开头只能输入数字、字母、下划线
let reg = /^[a-zA-Z][a-zA-Z0-9_]*$/
⑨只取字符中的数字
var str= '<ww-open-id type="departmentName" openid="12346"></ww-open-id>';
console.log(str.replace(/[^0-9]/ig,''))
3.el-input 和el-form一起使用时验证范例
export default {
    data() {
        var checkEmail = (rule, value, callback) => {
            if (!value) {
                return callback();
            }
            if (value) {
                setTimeout(() => {
                    var reg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
                    if (!reg.test(value)) {
                        callback(new Error('请输入有效的电子邮箱!'));
                    } else {
                        callback();
                    }
                }, 500);
            }
        };
        return {
            ruleForm: {
                name: '',
                email: '',
            },
            rules: {
                name: [
                    {required: true, message: '请输入姓名', trigger: 'blur'},
                    {min: 1, max: 15, message: '长度在 15 个字以内', trigger: 'blur'}
                ],
                email: [
                    {validator: checkEmail, trigger: ['blur,change']}
                ],
            },
        };
    },
}    
4.Event
实时输入使用 @input
作者:smile.轉角
QQ:493177502
【vue】vue +element 搭建项目,el-input 常用的验证的更多相关文章
- Vue + TypeScript + Element 搭建简洁时尚的博客网站及踩坑记
		前言 本文讲解如何在 Vue 项目中使用 TypeScript 来搭建并开发项目,并在此过程中踩过的坑 . TypeScript 具有类型系统,且是 JavaScript 的超集,TypeScript ... 
- 使用VUE CLI3.0搭建项目vue2+scss+element简易版
		1.安装Vue CLI 3 //三选一即可cnpm install -g @vue/cli npm install -g @vue/cli yarn global add @vue/cli 注意: 1 ... 
- vue.js + element 搭建后台管理系统 笔记(一)
		此文仅记录本人在搭建后台系统过程中遇到的难点及注意点,如果能帮到各位自然是极好的~~~ 项目主要架构:vueJS.elementUI.scss 一.项目初始化 首先需要安装nodejs,安装方法就不在 ... 
- vue教程3-webpack搭建项目
		vue-cli https://cli.vuejs.org/zh/ vue-cli是vue的命令行工具,对于创建项目,安装各种组件,运行项目都极为方便,是在开发vue中的必备工具 vue-cli基于n ... 
- 【vue】vue +element 搭建项目,mock模拟数据(纯干货)
		1.安装mockjs依赖 (c)npm install mockjs --save-dev 2.安装axios(Ajax) (c)npm install --save axios 3.项目目录 4.设 ... 
- 【vue】vue +element 搭建项目,将js函数变成vue的函数
		demo:时间转换 1.目录 <1>在src文件夹下新建文件夹prototypefns--------在此文件夹创建util.js, <2>在prototypefns下新建文件 ... 
- 【vue】使用vue+element搭建项目,Tree树形控件使用
		1.依赖安装 本例中,使用render-content进行树节点内容的自定义,因此需要支持JSX语法.(见参考资料第3个) 在Git bash中运行一下指令 cnpm install\ babel-p ... 
- 【vue】vue +element 搭建项目,要求既支持pc端又支持移动端
		使用场景:有适配pc端改为适配pc端和移动端,使用2套css 代码实现App.vue created: function () { if(document.documentElement.client ... 
- 【vue】vue +element 搭建项目,组件之间通信
		父子组件通信 父 通过props属性给 子传递数据 子 操作 父 this.$parent.XXX 子通过$emit传递参数 或者通过vue-bus vue-bus既可以实现父子组件之间的通信,也可 ... 
随机推荐
- 减少页面加载时间的n种方法
			减少HTTP请求 1:减少调用其他页面.文件的数量 2:使用css spirit , 减少图片加载次数 压缩js,css代码 1:一般js.css文件中存在大量的空格.换行.注释,这些利于阅读,如果能 ... 
- Laravel5.5 数据库迁移:创建表与修改表
			数据库迁移是数据库的版本管理,要使用数据库迁移,需要在.env文件中连接好数据库(不多说).laravel本身已经存在user表和password_resets表的迁移了,因此,执行 php arti ... 
- 前端入门2-HTML标签
			本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 声明 本系列文章内容全部梳理自以下四个来源: <HTML5权威指南> <JavaScript权威指南> MD ... 
- angular ng-repeat radio取值
- angular 分页插件的使用
			html: <pagination total-items="totalItems" ng-model="currentPage" items-per-p ... 
- K8S flannel
			kubernetes网络通信方式有: 容器间的通信 : pod内的容器通信 通过(lo)设备 Pod之间的通信 :pod IP <-----> pod IP ,K8S 要求所有的 pod ... 
- es6 语法 (let 和const)
			一.let 和const 1.let 只在自己声明的块作用域中有效: function test(){ let a = 'a'; var b = 'b'; for(let i =1;i<3;i+ ... 
- angluarjs中页面初始化的时候会出现语法{{}}在页面中问题
			angluarjs中页面初始化的时候会出现语法{{}}在页面中问题,也即是页面闪烁问题.出现这个的原因是:由于页面或者组件需要渲染加载数据,浏览器和angluarjs渲染页面需要消耗一定的时间,虽然这 ... 
- 2017-11-07 中文代码示例之Angular入门教程尝试
			"中文编程"知乎专栏原址 原文: 中文代码示例教程之Angular尝试 为了检验中文命名在Angular中的支持程度, 把Angular官方入门教程的示例代码中尽量使用了中文命名. ... 
- DEM山体阴影原理以及算法具体解释
			山体阴影原理以及算法具体解释 山体阴影基本原理: 山体阴影是假想一个光源在某个方向和某个太阳高度的模拟下.用过临近像元的计算来生成一副0-255的灰度图. 一.山体阴影的主要參数: 1. 太阳光线的 ... 
