checkText输入框可输入字符个数提示:
从xweibo提取出来的,做了相应修改
var myUtil = {
checkText : function(textSelector, tipSelector, num) {
var t = textSelector.val();
var v = $.trim(textSelector.val());
var left = this.calWbText(v, num);
if (left >= 0)
tipSelector.html(this.getText('您还可以输入{0}字', '<span>' + left
+ '</span>'));
else
tipSelector.html(this.getText('已超出{0}字', '<span>' + (-left)
+ '</span>'));
// this.jqWarn.checkClass(exceedCS,left<0);
return left >= 0 && v;
},
calWbText : function(text, max) {
if (max === undefined)
max = 140;
var cLen = 0;
var matcher = text.match(/[^\x00-\xff]/g), wlen = (matcher && matcher.length) || 0;
return Math.floor((max * 2 - text.length - wlen) / 2);
},
templ : function(str, map, urlencode, cascade) {
return str.replace(/\{([\w_$]+)\}/g, function(s, s1) {
var v = map[s1];
if (cascade && typeof v === 'string')
v = argument.callee(v, map, urlencode, cascade);
if (v === undefined || v === null)
return '';
return urlencode ? encodeURIComponent(v) : v;
});
},
texts : {},
getText : function(tx, map) {
var texts = this.texts;
if (tx in texts) {
tx = texts[tx];
}
if (map !== undefined) {
return this.templ(tx,
$.isArray(map) || typeof map == 'object' ? map : [ map ]);
}
return tx;
}
};
使用myUtil.checkText($(‘#text’), $('#tip'), 1000);