当前位置: 首页 > news >正文

【Utils-实用工具】1 - 根据字节限制输入长度

文章目录

  • 1. el-input输入框【根据字节限制输入长度】
    • 1.1 【封装方法】到utils中
    • 1.2 main.js中把【方法注入到原型】
    • 1.3 在vue总使用

1. el-input输入框【根据字节限制输入长度】

  • 需求:某个字段需要限制输出长度字符长度小于64个VARCHAR2(64)
  • 分析:
    – 这一眼就看出来是数据库的限制,数据库是根据字节做的限制,varchar2(64),就相当于varchar2(64 byte),表示最大字节数是64,该字段最多能容纳64个字节;
    – 而前端组件el-input的限制长度(maxlength)只能限制字符串的长度无法直接限制字节,所以我们封装了一个方法,按如下操作:

1.1 【封装方法】到utils中

我把限制字节的方法封装在通用方法 commonUtils.js中,下面是commonUtils.js的代码

// 输入字节长度限制 
//入参:value是输入框的值,limit是限制的字节长度
export function charLimitedInput(value,limit){let len = 0, j = 0; // len为字节数,j为字符数for (let i = 0; i < value.length; i++) {// 判断是否为多字节if (value.charCodeAt(i) > 127 || value.charCodeAt(i) == 94) {len += 2;j++;} else {len++;j++;}if (len > limit) {value = value.substring(0, j - 1);this.$message.warning('请输入不超过 ' + limit + ' 个字节。');break;}}return value;
}

1.2 main.js中把【方法注入到原型】

在main.js引用,然后注入到原型,以后可以直接使用该方法

// 引用
import {charLimitedInput} from "@/utils/commonUtils"// 注入原型
Vue.prototype.charLimitedInput = charLimitedInput

1.3 在vue总使用

<el-input v-model.trim="form.objectName" placeholder="请输入" clearable maxlength="64" @input="form.objectName = charLimitedInput(form.objectName,64)"/>

注:

  • 一个汉字 = 2个英文字母 = 2字节
  • 一个汉字 = 2字节
  • 1个英文字母 = 1字节

参考:1. el-input输入框根据字节限制输入长度(中文占两字节,数字英文占一字节)


相关文章:

  • [随笔] 在CSDN的6周年纪念日随笔
  • mybatis-plus中多条件查询使用and合or嵌套使用
  • Function Calling学习
  • 开源数据库同步工具DBSyncer
  • Altium Designer软件下载安装「专业PCB设计软件」Altium Designer安装包获取!
  • 【Linux 网络编程】协议的分层知识!
  • 专项技能训练五《云计算网络技术与应用》实训9 使用openVPN建立小型企业内网VPN环境
  • C语言 指针——指针变量的定义、初始化及解引用
  • 串口通信问题排查总结
  • Flink 对接 Hudi 查询数据,java代码编写
  • Windows驱动开发系列文章一
  • Deepin Linux 深度 V23 beige 官方源及换镜像源方法。
  • 【MySQL精通之路】优化
  • 一千题,No.0037(组个最小数)
  • 2021职称继续教育--中国共产党的光辉历程及其经验
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 03Go 类型总结
  • 0基础学习移动端适配
  • iOS | NSProxy
  • JavaScript服务器推送技术之 WebSocket
  • SegmentFault 2015 Top Rank
  • vue-loader 源码解析系列之 selector
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 提醒我喝水chrome插件开发指南
  • 一些关于Rust在2019年的思考
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • Spring第一个helloWorld
  • 第二十章:异步和文件I/O.(二十三)
  • #### go map 底层结构 ####
  • #define
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (三) diretfbrc详解
  • (三)uboot源码分析
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (学习总结)STM32CubeMX HAL库 学习笔记撰写心得
  • (原创)可支持最大高度的NestedScrollView
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)setTimeout 和 setInterval 的区别
  • .axf 转化 .bin文件 的方法
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .htaccess配置重写url引擎
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Core 版本不支持的问题
  • .Net7 环境安装配置
  • .NET委托:一个关于C#的睡前故事
  • .net专家(张羿专栏)
  • /etc/fstab 只读无法修改的解决办法