JS TextArea字符串长度限制代码集合

代码如下:

<html>
<body>
<textarea id="t"></textarea>
<input type="text" id="b2" />
<script type="text/javascript">
textAreaLimit("t",{lastMsgLabel:"b2"})
function textAreaLimit(area,op){
var defaultOp = {
maxLength:10 //最大长度
, IsNumber:false //只能是数字
, lastMsgLabel:null //即时显示可输入个数的Input
, msg:"还可以输入{0}个文字"
, errorMsg:"文字个数超出最大限制"
};
var label;
if(typeof area == "string"){
area = document.getElementById(area);
}
if(!area){
return;
}
for(var i in op){
defaultOp[i] = op[i];
}
if(defaultOp.lastMsgLabel){
if(typeof defaultOp.lastMsgLabel == "string"){
label = document.getElementById(defaultOp.lastMsgLabel);
}
}
if(defaultOp.IsNumber){
area.style.imeMode="Disabled";//IE
area.onkeydown = function(){
return event.keyCode != 229;
}
}
area.onkeyup = function(){
if(defaultOp.IsNumber){
this.value = this.value.replace(/\D/g,"");//IE之外的
}
if(this.value.length > defaultOp.maxLength){
//-------------------------------------------------------------------------------
//方案①
this.disabled = "disabled";
this.value = this.value.slice(0,defaultOp.maxLength);
this.removeAttribute("disabled");
this.focus();
//方案②
//或
//alert(defaultOp.errorMsg);
//this.value = this.value.slice(0,defaultOp.maxLength);
//-------------------------------------------------------------------------------
}
if(label){
label.value = defaultOp.msg.replace(/\{0\}/,defaultOp.maxLength -this.value.length);
}
}
}
</script>
</body>
</html>

解决输入日语+全角时出现的BUG 主要是在红线中间的代码。
思路就是中断日语的输入状态。
用如果输入超出时能忍受弹窗的话,就用方案②,否则的话就用方案①。

(0)

相关推荐

  • Javascript 字符串字节长度计算函数代码与效率分析(for VS 正则)

    先看看一下两段代码吧,它们分别用for循环和正则表达式来检测字符串的字节长度: for循环检测字符串的字节长度方法一: 复制代码 代码如下: var lenFor = function(str){ var byteLen=0,len=str.length; if(str){ for(var i=0; i<len; i++){ if(str.charCodeAt(i)>255){ byteLen += 2; } else{ byteLen++; } } return byteLen; } els

  • JS获取字符串型数组下标的数组长度的代码

    标题页 var info = new Array(); //创建数组对象 info['name'] = '张三'; //设置数组中的一项,注意索引为字符串类型 info['age'] = '26'; //设置数组中的第二项 var i=0; for(var n in info) //遍历数组中的每一项 { i++; //用来获取数组中的元素个数 } alert("总共"+i+"个元素"); //显示数组中总共多少元素 [Ctrl+A 全选 注:如需引入外部Js需刷新

  • js如何判断输入字符串长度

    js判断输入字符串长度(汉字算两个字符,字母数字算一个) 文本输入时,由于数据库表字段长度限制会导致提交失败,因此想到了此方法验证. 废话不多说上代码: <html> <head> <title>js判断输入字符串长度(汉字算两个字符,字母数字算一个)</title> <style type="text/css"> .pbt { margin-bottom: 10px; } .ie6 .pbt .ftid a, .ie7 .p

  • JS版获取字符串真实长度和取固定长度的字符串函数

    自动将双字节字符长度计算为2,取字符时也按照单字节的长度取,如2即取1个汉字或两个字母,1取一个汉字或字母. // 得到字符串的真实长度(双字节换算为两个单字节) function getStrActualLen(sChars) { return sChars.replace(/[^\x00-\xff]/g,"xx").length; } // 截取固定长度子字符串 sSource为字符串iLen为长度 function getInterceptedStr(sSource, iLen)

  • JS控制输入框内字符串长度

    复制代码 代码如下: // 获取字符串的字节长度function len(s) {s = String(s);return s.length + (s.match(/[^\x00-\xff]/g) || "").length;// 加上匹配到的全角字符长度} function limit(obj, limit) {var val = obj.value;if (len(val) > limit) {val=val.substring(0,limit);while (len(val

  • js计算字符串长度包含的中文是utf8格式

    方法一: 复制代码 代码如下: function byteLength(str) { var byteLen = 0, len = str.length; if( !str ) return 0; for( var i=0; i<len; i++ )  byteLen += str.charCodeAt(i) > 255 ? 2 : 1; return byteLen;} 说明:byteLength(str)参数:string str: 要计算字节长度的字符串(非ASCII的字符算2字节) 方

  • js substring从右边获取指定长度字符串(示例代码)

    如下所示: 复制代码 代码如下: /* Get the rightmost substring, of the specified length, from a String object. */ String.prototype.right = function (length_) { var _from = this.length - length_; if (_from < 0) _from = 0; return this.substring(this.length - length_,

  • js限制textarea每行输入字符串长度的代码

    但是textarea没有这个属性. asp.net的服务端textbox这个属性也不起效,所以我们只有用js脚本来控制 好,废话不多说,先上代码 javascipt源码: 复制代码 代码如下: function textCounter(field, maxlimit, lines) {//参数说明:field是textarea对象,maxlimit是最大允许长度,lines是行数 var arr = field.value.split("\n");//首先我们要为验证行数,通过分行符&

  • JS判断字符串长度的5个方法(区分中文和英文)

    目的:计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: 复制代码 代码如下: String.prototype.gblen = function() {    var len = 0;    for (var i=0; i<this.length; i++) {      if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) {         len += 2;       } else {         len ++; 

  • JS TextArea字符串长度限制代码集合

    复制代码 代码如下: <html> <body> <textarea id="t"></textarea> <input type="text" id="b2" /> <script type="text/javascript"> textAreaLimit("t",{lastMsgLabel:"b2"}) func

  • JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)

    js判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个) 文本输入时,由于数据库表字段长度限制会导致提交失败,因此想到了此方法验证. 废话不多说上代码: <html> <head> <title>js判断输入字符串长度(汉字算两个字符,字母数字算一个)</title> <style type="text/css"> .pbt { margin-bottom: 10px; } .ie6 .pbt .ftid a, .ie

  • 处理判断字符串长度的代码

    呵呵大家也看到题目--基础练习.我不会出的太难的,这道题的思路应该会比较多的 不过我也还没开始做,希望大家积极参与哦.(最惨的就是只能加别人两分,郁闷) 习题1.1 字符串长度不超过80.不含特殊字符 例 i like the bathome,because here is the batch of the world. 1.2 字符串长度小于255,含有特殊字符,试求其长度. 例 %%a%%!ver!&^^^ ^*~ are you o k ?" : \ / ` ` verfdxcwe

  • JS验证字符串功能

    js 验证字符串功能实例代码如下所示: //去除空格 function jsTrim(value) { var reg = /^\S$/; if (!value) return ""; if (value.length == 0) return value; else { var lp, rp; lp = 0; rp = value.length - 1; while ((value.charAt(lp) == " " || (value.charCodeAt(lp

  • Shell脚本中计算字符串长度的5种方法

    有时在Linux操作系统中需要计算某个字符串的长度,通过查询资料整理了下目前Shell中获取字符串的长度的多种方法,在这里分享给大家,方法如下: 方法1: 使用wc -L命令 wc -L可以获取到当前行的长度,因此对于单独行的字符串可以用这个简单的方法获取,另外wc -l则是获取当前字符串内容的行数. 复制代码 代码如下: echo "abc" |wc -L 方法2: expr length string 使用expr length可以获取string的长度 方法3: awk获取域的个

  • Lua获取utf8字符串长度和字符串截取并用...代替

    一.LUA获取utf8字符串长度 复制代码 代码如下: --- 获取utf8编码字符串正确长度的方法 -- @param str -- @return number function utfstrlen(str) local len = #str; local left = len; local cnt = 0; local arr={0,0xc0,0xe0,0xf0,0xf8,0xfc}; while left ~= 0 do local tmp=string.byte(str,-left);

随机推荐