JQ实现maxlength功能,中英文都按字符计算
来源:互联网 发布:数据智能 编辑:程序博客网 时间:2024/05/22 06:06
textarea标签有个maxlength属性,可以规定文本区域允许的最大字符数。例如当maxlength=50时,你只可以输入50个英文“字符”或者50个“中文字”(即100个字符)。例如:果你输入的内容既有中文又有英文时,这个长度就不是50个英文字符,也不是50个中文字,而是英文字母和中文字都只算一个字符。即你可以输入25个字母和25个中文字。
那我想让用户只能输入50个字符,不管他输入的是中文还是英文,我全都转换成字符计算,该怎么办?于是有了下面的代码:
<html><head> <script type="text/javascript" src="jquery-1.12.1.js"></script></head><body align="center"> <div class="panelPop" id="bodyPop" style="display: block;"> <div class="pannelTitle"></div> <div class="pannelBody"> <span class="poperror"><br><br></span> <div class="pannelText"> <textarea maxlength="50" class="textareaStyle" id="txtId" placeholder="建议" style="height: 300px;width: 300px;"></textarea> <div class="msLine"><span class="fontNumble">最多输入450字</span></div> </div> <dl> <dt>Email</dt> <dd><input id="emInput" type="text" placeholder="请填写真实邮箱"></dd> </dl> <dl> <dt id="contPerson">联系人</dt> <dd><input id="naInput" type="text" placeholder="姓名或称谓"></dd> </dl> <dl> <dt id="phNumber">电话</dt> <dd><input id="phInput" type="text" placeholder="联系电话"></dd> </dl> <div class="btnBox"> <a class="btn" href="javascript:void(0)" id="popSubmit" onclick="popSuggest()">提交</a> </div> </div> </div><script type="text/javascript">var maxCount = 450;var lang == "CN";$(document).ready(function () { //绑定统计字符函数 $("#txtId").on('keyup', function () { var len = getStrLength(this.value); if (len > maxCount) { this.value = cut_str(this.value,len,maxCount); len = getStrLength(this.value); } $(".fontNumble").html("当前输入 " + len + "/450字"); });});// 中文字符判断function getStrLength(str) { var len = str.length; var reLen = 0; for (var i = 0; i < len; i++) { if (str.charCodeAt(i) < 27 || str.charCodeAt(i) > 126) { // 全角 reLen += 2; } else { reLen++; } } return reLen;}// 截取字符(中英文)function cut_str(stbr,strLen,maxLen) { var reLen = 0; var a = 0; for (var i = 0; i < strLen; i++) { if (stbr.charCodeAt(i) < 27 || stbr.charCodeAt(i) > 126 || stbr.charCodeAt(i)>255) { // 全角和非英文 reLen += 2; } else { reLen++; } if (reLen >= maxLen) { a = i-(reLen-maxLen) + 1; break; } } return stbr.substring(0, a);} function popSuggest(){ //联系电话验证 var phone = 1; if ($("#phInput").val().length <= 0) { var cntnull = '<span class="poperror">联系电话不能为空。<br/><br/></span>'; $(".pannelText").before(cntnull); phone = 0; return; } else { var isMobile = $("#phInput").val().match(/^[0-9 -]+$/); //var isAllbars = $("#phInput").val().match(/^[-]+$/); var isAllbars = $("#phInput").val().match(/^[1-9][0-9]*/); if (!isMobile || isAllbars) { var cntnull = '<span class="poperror">请输入正确的联系电话。<br/><br/></span>'; $(".pannelText").before(cntnull); phone = 0; return; } } alert(phone);}</script></body></html>
0 0
- JQ实现maxlength功能,中英文都按字符计算
- PHP截取字符串---中英文都按一个字符计算
- 中英文字符计算
- 中英文字符计算
- jq实现全选功能
- jq 实现遍历功能
- JavaScript 中英文字符判断和长度计算
- 计算文本长度,区分中英文字符
- iOS NSString 计算中英文字符长度
- ECShop实现中英文切换功能
- textarea实现maxlength属性
- jq+js 实现星星打分功能!
- web使用jq实现复制功能
- thinkphp jq 实现列表查看更多功能
- jq实现批量上传+裁剪功能
- php 计算包含中英文的字符串的字符数
- 计算中英文混合字符串长度,中文算两个字符
- input、texarea 实现maxlength控制
- 【算法】插入排序
- MATLAB logspace创建向量
- 自旋锁
- Thread和Runnable的区别
- finished with non-zero exit value 1
- JQ实现maxlength功能,中英文都按字符计算
- Android开发笔记(序)写在前面的目录
- UDP丢包及无序的问题
- 虚拟机上安装MySql并且通过可视化工具SQLyog远程连接
- POJ3041-Asteroids
- 工作笔记之折叠面板
- 维生素 B12 的重要性
- c++终极单例模式。
- 401. Binary Watch