js计算textarea输入文字的长度
前言
日常开发过程中,有些时候我们想使用textarea,然后限制输入的长度,在textarea末尾显示剩余可输入的字节数。
如下图:

解决方法:
常用的有三种方法:
1、通过判断charCodeAt,区分字母与中文 ,然后计算字符串的长度。
2、通过使用charCodeAt 和 0xff00区分中文与英文,这个代码量稍微减少一些。
3、使用正则,把输入的中文,转成英文。1个中文等于两个英文,最后计算英文个数。
代码如下:
方法一:

var obj = {};
obj.GetLength = function(str) {
// <summary>获得字符串实际长度,中文2,英文1</summary>
// <param name="str">要获得长度的字符串</param>
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;
};
alert(obj.GetLength('这是中文aaaaaaa'));

方法二(更简洁的方法):

var length = str.length; // str是输入的字符串
var blen = 0;
for (i=0; i<length; i++) {
if ((str.charCodeAt(i) & 0xff00) != 0) { // 如果是英文,返回0
blen ++;
}
blen ++;
}

方法三(更更简洁的方法):
var obj = {};
obj.GetLength = function(str) { // str是输入的字符串
return str.replace(/[\u0391-\uFFE5]/g,"aa").length; // 先把中文替换成两个字节的英文,再计算长度
};
alert(obj.GetLength('这是中文aaaaaa'));
TIP:
charCodeAt()方法的作用是:返回指定位置的字符的 Unicode 编码
js计算textarea输入文字的长度的更多相关文章
- textarea输入文字限制个数
说明: w-count固定为数字部分的class textarea-active为超出最大输入文字个数报错信息的class html 部分: <div class="wrap wrap ...
- js控制textarea输入字符串的个数,鼠标按下抬起推断输入字符数
[Html代码] <table> <tr> <td width="150">短信内容:</td> <td> <te ...
- js 控制输入文字个数(换行不算)
如题,换行符在textarea中是要当成一个字符的.用普通的maxlength属性就不行了,于是想到通过事件来控制输入文字的长度. 注意哦,回车换行不能算成字符.这样的话,普通的substring等方 ...
- 限制textarea输入内容长度(多浏览器兼容、鼠标操作可控)
限制textarea的输入内容长度,当从键盘输入,内容长度达到最大值时,只有输入Backspace.Delete.左移动.右移动有效,当用鼠标粘贴内容,则只保留最大值长度的内容.从而控制textare ...
- inupt textarea提示文字(点击消失,不输入恢复)
<input name="textfield" type="text" maxlength="20" value="请输入 ...
- inupt textarea提示文字(点击消失,不输入恢复)及限制字数
效果: input: textarea: 限100字 源码: input: <input name="textfield" type="text" max ...
- JS控制文本框textarea输入字数限制
<html> <head> <title>JS限制Textarea文本域字符个数</title> <meta http-equiv="C ...
- iOS webView与js交互在文本空格上输入文字
项目要求:webview加载html网址,内容为填空题型文本,需要在横线上添加答案,并点击提交按钮后再将答案进行回显 正常加载的效果图片: 这个是用js交互后的效果图: 点击空格,输入想输入的答案,如 ...
- javascript限定输入textarea输入长度
<textarea id="content" onkeyup="limitLength(this.value,'512','content')"> ...
随机推荐
- nop4.1用2008r2的数据库
修改appsetting.json
- Advanced Installer 不弹出预安装的软件的窗口
需求:当他电脑上没有sql server client 的时候,或没有localdb的时候,那么安装包会弹出窗口,让他选择 一个组件 一个组件的安装 太麻烦. 有没有办法,打开安装包就安装 安装的过程 ...
- HLSL中constant variables的packing规则
HLSL中constant variables的packing规则 参考MSDN上的官方文档.一般而言,HLSL将数据打包为4字节对齐,此外,它不允许数据跨16字节(即4个float的vector)的 ...
- jmeter压测实践
技巧一:命令行执行 命令执行:指定参数,报告的存储位置 jmeter -n -t baidu_requests_results.jmx -r -l baidu_requests_results.jtl ...
- HTML之盒子变形动画
4个圆形球作圆周运动 代码: <div class="box"> <div class="box1"></div> < ...
- 利用 Monitor.TryEnter 来规避 .NET 线程死锁的源代码
在开发多线程的应用程序时,我们会大量用到 lock (...) {} 块.如果 lock 的对象比较多,非常容易发生死锁.死锁的发生很难预料,而且一旦发生在界面线程上,界面就不再刷新响和应用户输入:如 ...
- Kernel boot options
There are three ways to pass options to the kernel and thus control its behavior: When building the ...
- ioping测试
ioping 一个实时显示磁盘io延时的工具,以类似ping 的输出一样展示输出结果 常用参数: -c count stop after count requests. -i interval Set ...
- 6.MNIST数据集分类简单版本
import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data # 载入数据集 mnist = i ...
- QTP(5)
一.检查点 1.位图检查点(Bitmap CheckPoint) (1)作用:主要用于检查UI界面,检查页面布局,包括控件位置.大小.颜色.状态等 (2)确定位图检查点的要素: a.检查哪个控件 b. ...