jquery 字符个数(数字字母长度记为1,中文记为2,超过长度自动截)
2014-10-10 15:16
316 查看
<script type="text/javascript">
//返回val的字节长度
function getByteLen(val) {
var len = 0;
for (var i = 0; i < val.length; i++) {
if (val[i].match(/[^\x00-\xff]/ig) != null) //全角
len += 2;
else
len += 1;
}
return len;
}
//返回val在规定字节长度max内的值
function getByteVal(val, max) {
var returnValue = '';
var byteValLen = 0;
for (var i = 0; i < val.length; i++) {
if (val[i].match(/[^\x00-\xff]/ig) != null)
byteValLen += 2;
else
byteValLen += 1;
if (byteValLen > max)
break;
returnValue += val[i];
}
return returnValue;
}
$(function() {
var _area = $('textarea#txtPrizeNote');
var _info = _area.next();
var _max = _area.attr('maxlength');
var _val;
_area.bind('keyup change', function() { //绑定keyup和change事件
if (_info.find('span').size() < 1) {//避免每次弹起都会插入一条提示信息
_info.append(_max);
}
_val= $(this).val();
_cur = getByteLen(_val);
if (_cur == 0) {//当默认值长度为0时,可输入数为默认maxlength值
_info.text(_max);
} else if (_cur < _max) {//当默认值小于限制数时,可输入数为max-cur
_info.text(_max - _cur);
} else {//当默认值大于等于限制数时
_info.text(0);
$(this).val(getByteVal(_val,_max)); //截取指定字节长度内的值
}
});
});
</script>
//返回val的字节长度
function getByteLen(val) {
var len = 0;
for (var i = 0; i < val.length; i++) {
if (val[i].match(/[^\x00-\xff]/ig) != null) //全角
len += 2;
else
len += 1;
}
return len;
}
//返回val在规定字节长度max内的值
function getByteVal(val, max) {
var returnValue = '';
var byteValLen = 0;
for (var i = 0; i < val.length; i++) {
if (val[i].match(/[^\x00-\xff]/ig) != null)
byteValLen += 2;
else
byteValLen += 1;
if (byteValLen > max)
break;
returnValue += val[i];
}
return returnValue;
}
$(function() {
var _area = $('textarea#txtPrizeNote');
var _info = _area.next();
var _max = _area.attr('maxlength');
var _val;
_area.bind('keyup change', function() { //绑定keyup和change事件
if (_info.find('span').size() < 1) {//避免每次弹起都会插入一条提示信息
_info.append(_max);
}
_val= $(this).val();
_cur = getByteLen(_val);
if (_cur == 0) {//当默认值长度为0时,可输入数为默认maxlength值
_info.text(_max);
} else if (_cur < _max) {//当默认值小于限制数时,可输入数为max-cur
_info.text(_max - _cur);
} else {//当默认值大于等于限制数时
_info.text(0);
$(this).val(getByteVal(_val,_max)); //截取指定字节长度内的值
}
});
});
</script>
相关文章推荐
- jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
- jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
- jquery实时监控textarea文本框中的字符(中文汉字及标点、英文字母及标点、数字)长度
- 【JS】JS判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
- JS判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
- 正则 8-18位长度,数字,字母,字符 任意两种,不含中文测试通过
- 获取包含中文,字母,数字集合的字符串的长度(1个汉字字符存储需要2个字节,1个英文字符存储需要1个字节)
- 数据格试验证(Email,IP地址,URL地址,身份证,电话,日期,中文,字母数字组合,字符或是数字)
- 求中英文混合字符串长度,中英文混合字符串截取(汉字2个字节,字母数字等1个字节),字符转ASCII码,ASCII码转字符
- 短信一次发送字节140个,如果超过140字节就会分为两条。这时如果第140个字节是中文的前半,那么第一条短信应该发送139字节。设计一个程序,读取原始信息,可以根据长度自动拆分信息转换为多条短信
- js中用正则表达式 过滤特殊字符, js验证中文字母数字
- js实现超过长度的字符截取指定长度(中文字符算2个字符),超出部分以...显示
- 以字母开头,长度在6~18之间,只能包含字符、数字和下划线
- 正则表达式 匹配中文,英文字母和数字及_的写法!同时控制长度
- Android输入框限制字符长度,字母自动大写
- 字符超过某一指定长度自动换行
- 【转】正则表达式 匹配中文,英文字母和数字及_的写法!同时控制长度
- iOS中 判断字符串 中文字符 字母 数字 以及下划线
- 判断字符串 中文字符 字母 数字 以及下划线