1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > input输入框限制中文汉字只能输入20个字符 英文10个字符!

input输入框限制中文汉字只能输入20个字符 英文10个字符!

时间:2018-09-13 12:41:41

相关推荐

input输入框限制中文汉字只能输入20个字符 英文10个字符!

iput输入框限制中文汉字只能输入10个字符,英文20个字符!

产品提了一个需求,要求输入框输入汉字的时候只能输入10个汉字 英文的话只能输入20个,当时不知道怎么做,后来通过百度查找到了答案。

@input绑定limitLength方法

limitLength(e) {let value = e.detail.valueconst split = value.split('');//判断一段文字里面有几个汉字跟英文const map = split.map((s, i) => {return (value.charCodeAt(i) >= 0 && value.charCodeAt(i) <= 128) ? 1 : 2;});//计算数组相加的综合let charLength = map.length > 0 && map.reduce((accumulator, currentValue, index) => {const count = accumulator +A currentValue;return count});//判断长度是否大于20 大于20调用字节截取if (charLength <= 20) {this.newData.name = value} else {//使用setTimeout方法异步修改input的值 直接修改不起作用setTimeout(() => {//调用字节截取内容的方法修改输入框的值this.newData.name = this.reBytesStr(this.newData.name, 20)}, 10)}},//通过字节截取字符串/*** @param {String} str //要截取的字符串* @param {Number} len //要截取的长度*/reBytesStr(str, len) {if ((!str && typeof(str) != 'undefined')) {return '';}var num = 0;var str1 = str;var str = '';for (var i = 0, lens = str1.length; i < lens; i++) {num += ((str1.charCodeAt(i) > 255) ? 2 : 1);if (num > len) {break;} else {str = str1.substring(0, i + 1);}}return str;}

以上就是我的解决方法。

补充:uni-app 设置maxlength 用户用手机自带输入法会在输入拼音的时候就导致无法打出完整的字。控制用户输入的长度也可以用这种方式,或者在提交按钮的时候校验字符长度

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。