首先看看判断字符串长度的几种方法(英文占1个字符,中文汉字占2个字符)

方法一:

 function strlen(str) {
var len = 0;
for (var i = 0; i < str.length; i++) {
var c = str.charCodeAt(i);
//单字节加1
if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {
len++;
} else {
len += 2;
}
}
return len;
} // strlen('adcd') //4
// strlen('adcd哈') //6

方法二:

       function GetLength(str) {
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;
} // GetLength('1234a') //5
// GetLength('我是谁') //6

方法三:

      function GetLength(str) {
var l = str.length;
var blen = 0;
for (i = 0; i < l; i++) {
if ((str.charCodeAt(i) & 0xff00) != 0) {
blen++;
}
blen++;
}
return blen;
} // GetLength('1234a') //5
// GetLength('我是谁') //6

上面三种方法都能返回字符串的长度,结合element的自带表单验证功能,就能做出好看又好用的验证啦。下面是使用element自定义验证实现提示输入要求的案列:

    <el-form :model="form" label-width='130px' :rules="rules" ref="ruleForm">
<el-form-item label="项目名称:" prop="projectname">
<el-input v-model="form.projectname" placeholder="请输入项目名称"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="subOnline()">在线生成</el-button>
</el-form-item>
</el-form>
<script>
export default {
data() {
//这里就是整个checkName啦,就是方法一的使用
var checkName = (rule, value, callback) => {
var len = 0;
for (var i=0; i<value.length; i++) {
var c = value.charCodeAt(i);
//单字节加1
if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {
len++;
} else {
len+=2;
}
};
if ((len < 4 && len> 0) || len > 30) {
//重点重点,下面就是填写提示的文字
callback(new Error('名称长度为4-30个字符,一个中文字等于2个字符。'));
} else {
callback();
}
}; return {
form: {
projectname: '',
},
rules: {
projectname: [
//validator是自定义校验固定写法,我们只需填他的值(checkName)就好了, callback 必须被调用。
{validator: checkName,trigger: 'blur' }
]
},
};
},
methods: {
//为了容易理解我就没写多余的方法,通过trigger: 'blur'使得输入框失去焦点就触发事件,也就看得到效果了
}
}
</script>

说了这么多,来看看效果吧:

******这是3个字符的,不合条件******

******这是4个字符的,符合条件******

******这是3个字符的,不符合条件******

JS判断字符串长度,结合element el-input el-form 表单验证(英文占1个字符,中文汉字占2个字符)的更多相关文章

  1. Element Ui使用技巧——Form表单的校验规则rules详细说明

    Element UI中对Form表单验证的使用介绍: Form 组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,并将 Form-Item的 prop 属性设置为需校验的字段名 ...

  2. JS判断字符串长度的5个方法

    这篇文章主要介绍了JS判断字符串长度的5个方法,并且区分中文和英文,需要的朋友可以参考下 目的:计算字符串长度(英文占1个字符,中文汉字占2个字符)   方法一:    代码如下: String.pr ...

  3. JS判断字符串长度(中文长度为2,英文长度为1)

    目的:计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: String.prototype.gblen = function() { var len = 0; for (var i=0; ...

  4. JS判断字符串长度的5个方法(区分中文和英文)

    目的:计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: 代码如下: String.prototype.gblen = function() {    var len = 0;    fo ...

  5. JS判断字符串长度(英文占1个字符,中文汉字占2个字符)

    //计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: String.prototype.gblen = function() { var len = 0; for (var i=0; i ...

  6. JS组件系列——Form表单验证神器: BootstrapValidator

    前言:做Web开发的我们,表单验证是再常见不过的需求了.友好的错误提示能增加用户体验.博主搜索bootstrap表单验证,搜到的结果大部分都是文中的主题:bootstrapvalidator.今天就来 ...

  7. js——form表单验证

    用js实现一个简易的表单验证 效果: 代码: <html> <head> <title>js校验form表单</title> <meta char ...

  8. Js document.frmLogin.action = '/login.htm';的意义和form表单的target属性

    一.解答:就是把 这个id名为frmLogin的form的提交地址改为上面的/login.htm <form id="frmLogin" name="frmLogi ...

  9. html5 填表 表单 input output 与表单验证

    1.<output>     Js计算结果 <form oninput="res.value = num1.valueAsNumber*num2.valueAsNumber ...

随机推荐

  1. Jmeter实时监控+SpringBoot接口性能实战

    性能测试 Jmeter实时监控+SpringBoot接口性能实战 自动化 SpringBoot Java Jmeter实时监控+SpringBoot接口性能实战 一.实验目的及实验环境 1.1.实验目 ...

  2. 《Graph Neural Networks: A Review of Methods and Applications》阅读笔记

    本文是对文献 <Graph Neural Networks: A Review of Methods and Applications> 的内容总结,详细内容请参照原文. 引言 大量的学习 ...

  3. Web前端_微信小程序实战开发

    微信小程序开发实战教程 一.微信小程序 它是一种混合开发的方式. 是安装在微信中的程序(一个程序最多2M空间). 1.1 注册 1  2 点击立即注册:进入下方页面 3  4 点击小程序进入表单填写页 ...

  4. MyBatis从入门到精通(2):MyBatis XML方式的基本用法

    本章将通过完成权限管理的常见业务来学习 MyBatis XML方式的基本用法 2.1一个简单的权限控制需求 权限管理的需求: 一个用户拥有若干角色,一个角色拥有若干权限,权限就是对某个模块资源的某种操 ...

  5. python3.5学习笔记(第六章)

    本章内容: 正则表达式详解(re模块) 1.不使用正则表达式来查找文本的内容 要求从一个字符串中查找电话号码,并判断是否匹配制定的模式,如:555-555-5555.传统的查找方法如下: def is ...

  6. wordpress备份和还原和迁移

    备份用mysqldump -u root -p test person > backup.sql 还原用mysql -u root -p < ./backup.sql 数据库密码修改后怎么 ...

  7. Android之无限轮播图源代码

    Android轮播广告图是大家经常用到的一个控件今天便撸了一把代码 实现步骤 使用Viewpager进行实现图片滑动 设置ViewPager的数据,让其无限切换 Activity代码 public c ...

  8. C#3.0新增功能07 查询表达式

    连载目录    [已更新最新开发文章,点击查看详细] 查询是什么及其作用是什么 查询是一组指令,描述要从给定数据源(或源)检索的数据以及返回的数据应具有的形状和组织. 查询与它生成的结果不同. 通常情 ...

  9. [HDOJ] 1172.猜数字

    Problem Description 猜数字游戏是gameboy最喜欢的游戏之一.游戏的规则是这样的:计算机随机产生一个四位数,然后玩家猜这个四位数是什么.每 猜一个数,计算机都会告诉玩家猜对几个数 ...

  10. 在pom.xml中的dependencies点击add怎么没有搜索到相关jar包

    1.eclipse菜单 window-> show view –> other –> Maven 2.在打开的窗口里,右键 local repositories –> loca ...