input输入框按照字符数限制输入

Input输入框内即时显示输入字符个数,并对字符个数进行限制 <Row className="c-row"> <Col className="c-col"> <span className="red-star">*&nbsp;</span> <span className="c-title">商家联系人</span> </Col> <Input placeholder="请输入名称" className 阅读详情

实现效果:按照字符数限制用户输入长度,汉字为两个字符,数字和字母为一个字符,超出字符长度限制时,自动去掉多余部分来限制用户输入。

第一种实现方式,自定义指令(update存在不及时调用的情况,放弃)

  • vue文件
<template>
  <div>
    <textarea v-limitTextLen="titleMaxLength" v-model="textareaValue"/>
  </div>
</template>
<script>
export default {
  name: 'Home',
  data() {
    return {
      textareaValue: '',
      titleMaxLength: 10
    }
  }
}
</script>
  • js文件
    定义全局自定义指令
    src目录下新建directive文件夹,directive文件夹下新建index.js和limitTextLen.js

index.js内容如下:

import vLimitTextLen from "./limitTextLen";
export default (Vue) => {
    Vue.directive('limitTextLen', vLimitTextLen)
}

limitTextLen.js内容如下:

function getStringLengthForChinese(val) {
    let str = val.toString(val)
    let result = 0
    for (let i=0;i<str.length;i++) {
        let temp = str.charCodeAt(i)
        if ((temp > 0x0001 && temp <= 0x007e) || (temp >= 0xff60 && temp <= 0xff9f)) {
            result += 1
        } else {
            result += 2
        }
    }
    return result
}
export default {
    update: (el,binding) => {
        // 超出长度限制
        if (getStringLengthForChinese(el.value) > binding.value) {
            let arr = el.value.split('')
            // 输入字符转成数组,依次推出最后一位元素
            for (let i=arr.length-1;i>0;i--) {
                arr = arr.slice(0,i)
                el.value = arr.join('')
                // 每推出一个,再次进行长度判断
                if (getStringLengthForChinese(el.value) <= binding.value) {
                    break
                }
            }
        }
    }
}

main.js中添加自定义指令

import Vue from 'vue'
import customDirective from './directive/index'
Vue.use(customDirective)

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

第二种实现方式,watch监听(正常)

  • vue文件
<template>
  <div>
    <textarea v-model="textareaValue"/>
  </div>
</template>

<script>
export default {
  name: 'Home',
  data() {
    return {
      textareaValue: '',
      titleMaxLength: 10
    }
  },
  watch: {
    textareaValue: function() {
      function getStringLengthForChinese(val) {
          let str = val.toString(val)
          let result = 0
          for (let i=0;i<str.length;i++) {
              let temp = str.charCodeAt(i)
              if ((temp > 0x0001 && temp <= 0x007e) || (temp >= 0xff60 && temp <= 0xff9f)) {
                result += 1
              } else {
                result += 2
              }
          }
          return result
      }
      let str = this.textareaValue
      if (getStringLengthForChinese(str) > this.titleMaxLength) {
          let arr = str.split('')
          // 输入字符转成数组,依次推出最后一位元素
          for (let i=arr.length-1;i>0;i--) {
              arr = arr.slice(0,i)
              str = arr.join('')
              // 每推出一个,再次进行长度判断
              if (getStringLengthForChinese(str) <= this.titleMaxLength) {
                this.textareaValue = str
                break
              }
          }
      }
    }
  }
}
</script>

【微信小程序】文本域输入带最大字数限制(1/100) 阅读详情

相关推荐

【快应用】如何限制input组件的输入值个数

可通过this.$watch()监测input组件的输入值和@change事件,当输入值超过限定字数给出弹窗提示,并强制将输入的值改为限定字数内。快应用中如何实现控制input输入,超过规定字数就弹窗提示且无法输入超过规定的字数?欲了解更多更全技术文章,欢迎访问。

华为开发者联盟 657

input输入框限制输入长度、限制输入内容

在vue+elemnetUI的前端项目中,使用input输入框进行内容的输入的时候,有的时候会要求限制输入字符长度,有的会限制输入的内容。以下是几个简单的介绍。

weixin_51465537的博客 1万+

HTML中input输入框(详解输入框的用法)

input>元素是HTML表单中最常见的元素之一,用于收集用户的输入数据。它可以包含多种类型的输入,如文本、密码、数字等。通过指定不同的type属性,可以定义不同类型的输入字段。类型(type)属性定义输入字段的类型,如文本框、密码框、单选按钮、复选框等。常见类型包括textpasswordradiocheckboxfile等。名称(name)属性用于标识输入字段的名称,以便在表单提交时能够将数据传输到服务器。对于单选按钮和复选框,相同名称的一组按钮被视为一个组,只能选择其中的一个或多个。

百赢出品,必属精品 2万+

限制input输入类型

1.只能输入和粘贴汉字 <input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"><br/>...

WS_2017的博客 571

激光工程师必备:5个ABCDRez在谐振腔设计中的实战技巧(含热效应处理)

本文为激光工程师分享了5个利用ABCDRez矩阵光学工具进行谐振腔设计的实战技巧,重点涵盖热效应处理、模式匹配优化与稳定性分析。通过建立参数化模型、动态热透镜补偿、模式匹配仿真及灵敏度分析,帮助工程师实现从“黑箱”到“白盒”的腔体设计与调试,提升激光器设计的鲁棒性与效率。

k6l7m8n9的博客 706

告别音质玄学:实测ACM8625S搭配杰理AC695x,如何通过寄存器精准调出好声音

第一次听到ACM8625S驱动音箱发出的声音时,我有些失望——这个被厂商宣传为"高保真数字功放"的芯片,默认配置下的表现甚至不如一些廉价模拟功放。经过两周的反复调试,最终配置使这款售价不到200元的音箱达到了接近专业监听设备的音质水平。特别是在鼓点和电吉他表现上,既保持了足够的冲击力,又不会掩盖人声细节。例如,当频率响应曲线在10kHz有+2dB提升时,多数评测者认为听感最佳,尽管这会使THD略微增加0.05%。虽然厂商提供的配置工具能快速生成基础代码,但想要获得最佳音效还需要手动优化。

weixin_29655587的博客 353

[Unity3d]NGUI的INPUT输入框限制中文字节数问题

一般来说,昵称等用户输入的自定义数据都需要限制一下显示的长度。 NGUI的INPUT输入框限制的是最大的char字符数,char字符数其实就是string的长度,中文算一个,英文也算一个。无法达到限制字节的效果。 如下: 既然NGUI已经提供了限制char的效果,咱们不妨将这个功能改为限制字节数。限制字符数的原理主要

menuconfig的专栏 6593

别再死记硬背MAML原理了!用PyTorch手撸一个Omniglot小样本分类器(附完整代码)

本文详细介绍了如何使用PyTorch实现MAML(模型无关的元学习)算法,构建一个Omniglot小样本分类器。通过实战代码演示,帮助读者理解MAML的双层优化原理,并提供了完整的训练循环、网络架构设计及调试技巧,适合想要掌握元学习技术的开发者。

weixin_29191669的博客 131

jquery之input输入框限制输入字符数及汉字数

直接上代码 JSP页面示例: <input type="text" class="textBox length-middle" id="namerid" name="name" oninput="checkField(this.value,20,'namerid')" /> <%--20为限制的字符数,相当于2倍的汉字数--%> Jquery代码 ...

@~莲坂果贸的博客 2759

UG/NX二次开发实战:用Python脚本批量更新100个零件参数,解放你的双手

本文详细介绍了如何利用NXOpen Python API进行UG/NX二次开发,实现批量更新100个零件参数的自动化流程。通过环境配置、框架设计、核心代码实现及性能优化,帮助工程师高效完成参数化设计任务,显著提升工作效率。

weixin_28694169的博客 276

华为FusionCompute之计算虚拟化

华为FusionCompute之虚拟化

jks212454的博客 2452

html 输入框 要求,input输入框限制

转自:http://hi.baidu.com/hechenn/item/d9cde5caaf8bb20aac092f281、小写自动转换成大写:or2、大写自动转换成小写or3、防止退后清空的TEXT文档4、ENTER键可以让光标移到下一个输入框5、只能为中文(有闪动)6、只能为数字(有闪动)7、只能为数字(无闪动)oronkeyup="if(isNaN(value)){alert('必须是数字'...

weixin_39887715的博客 1245

【WRF-GHG 教程上】完整教程(2024年更新版)

完整教程(2024年更新版)

WW、forever的博客 1432

input输入框限制字符数

在实际应用中,有时需要中文占据两个字符,英文或者数字占据一个字符来计算。输入框的计数一般都是一个字占据了一个字符来计算。

m0_57036170的博客 607

【推荐100个unity插件之7】使用BehaviorDesigner插件制作BOSS的AI行为树

Behavior Designer是一个行为树插件,是一款为了让策划,程序员,美术人员方便使用的可视化编辑器。Behavior Designer提供了强大的AP1可以让你轻松的创建tasks(任务),配合uScript和PlayMaker这样的插件,可以不费吹灰之力就能够创建出强大的Al系统,而无需写行代码。(不懂PlayMaker的,我后面在单独出文章介绍一下,可以期待一下)

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 6565

Windows Docker + RK3588 部署 YOLO26-Pose 人体姿态检测

YOLO26-Pose 在 RK3588 上的部署流程是 Windows Docker 容器内 ONNX 导出 → RKNN 转换(INT8 量化)→ ADB 推送 → 板端 C++ 推理。YOLO26n-Pose 在 640 输入下全链路约 55 FPS,可以覆盖实时姿态检测需求。先在板端用单张图片验证关键点输出正确性,确认 C++ 后处理的解析逻辑无误后,再切换到摄像头实时推理。

m0_64661770的博客 98

限制input输入框的输入字符个数,区别中英文字符

input输入框自带maxlength,但是无论是中文还是英文字符都算1。我们项目中要求的是中文字符算2个长度,英文字符算1一个长度。且我的是vue项目,需要实现双向数据绑定。经过一番研究得出下面的方法实现,暂时看来应该没问题。在此记录。 项目中使用的是elementUI库,为了输入框与elementUI保持一致,加上class:el-input__inner 使用@input实时监听输入框内容改...

weixin_39066827的博客 3233

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

在input中只能输入数字和限制长度和大小

在input中只能输入数字和限制长度和大小限制 1、<input type="number" onkeyup = "value=value.replace(/[^\d]/g,'')" /> 使用 onkeyup 事件,有 bug ,那就是在中文输入法状态下,输入汉字之后直接回车,会直接输入字母 2、<input type="number" onchange = ...

行者彡的博客 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

input输入框限制输入数值大小

input只能输入数字并限制长度 限制长度(字符数) <input type="number" oninput="if(value.length>11)value=value.slice(0,11)" /> 限制大小(最大值、最小值) //限制最大值30 <input type="number" oninput="if(value>30)value=...

cmj8043719242的博客 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

vue设置输入框输入长度_基于vue的限制输入框可输入字节数的解决方案

2018年07月11日基于vue的限制输入框可输入字节数的解决方案需求:input输入框输入上限4个字节、达到上限则不能继续输入,其中1个英文表示1个字节、1个中文表示2个字节。看到这个需求,第一个想到的就是input元素的maxlength属性。MDN对input的maxlength属性的说明是:如果 type 的值是 text, email, search, password, tel, 或...

weixin_39626369的博客 8651

Element Plus 中Input输入框

input为受控组件,他总会显示Vue绑定值,正常情况下,input的输入事件会正常被响应,他的处理程序应该更新组件的绑定值(或使用v-model)。属性, 来控制输入内容的最大字数和最小字数。属性改变输入框大小。提供一个包含有最大和最小高度的对象,让输入框自动调整。可以在输入框中前置或后置一个元素,通常是标签或按钮。来指定在 Input 中分发的前置或者后置的内容。prop可以限制输入值的长度。属性使得根据内容自动调整的高度。用于输入多行文本信息可缩放的输入框。要在输入框中添加图标,你可以简单地使用。

喝旺仔la的博客 1579

Javascript限制多行文本输入框的字符数

对于单行文本框,我们可以通过设置属性maxlength来限制可输入的最多字符数: input type="text" maxlength="5" /> 对于多行文本框,如果想限制最多可输入字符数,必须使用Javascript脚本来达到目的。   1. 最初的解决方案: textarea rows="4" cols="20" onkeydown="return maxlen

三生石上 1352

限制Input输入框输入最小最大字符数

function check(){ var liehuo_key=document.getElementById('liehuo_key'); if(liehuo_key.value.length<31){ alert("OpenID不正确,请检查!"); liehuo_key.value=""; liehuo_key.focus(); return false; } } 以上使用Jav

小菜鸟的HelloWorld 3万+

angular输入框的长度限制

一般来说前端界面少不了一两个输入框,这篇说说输入框字体长度限制的问题 准备工作 1、安装模块 npm install ng2-validation –save 2、配置*.module.ts import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import {CustomFormsModule} fro

天生我材必有用,千金散尽还复来。 7539

限制input输入字符数(中文2个字符,英文1个字符)

input的maxlength可以限制input的输入的字符数,但是是字符串的长度,相当于判断str.length;然而经常会有中文字符算2个字符英文算1个字符的需求,目前只能通过编写代码来实现。 <input class="remark-modify" maxlength="32" type="text" v-model="name" @blur="saveRemark" @keyp...

weixin_34129145的博客 5626

Vue获取input输入的值、并限制长度

https://blog.csdn.net/weixin_33676492/article/details/92493267

林中明月间丶 5537
上一篇: console调试
codezha
博客等级 码龄10年 28粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值