以下是我已经写好的内容并且工作正常:
var $remaining = $('#remaining'),
$messages = $remaining.next();
$('#message').keyup(function(){
var chars = this.value.length,
messages = Math.ceil(chars / 160),
remaining = messages * 160 - (chars % (messages * 160) || messages * 160);
$remaining.text(remaining + ' characters remaining');
$messages.text(messages + ' message(s)');
}); This is the above code in action
现在我要做的是:
var text_max_En = 100;
var text_max_utf8 = 200;
if /* what user has typed is English */
{
Do this
}
else if /* what user has typed is in utf8 type*/
{
Do that
}
简而言之:
**If**
用户在那里输入了英文,然后每条消息最多可以输入100个字符
AND **if**
这是urf8类型,那么它最多可以计数200个。
任何解决方案?
答案 0 :(得分:1)
使用String.charCodeAt获取字符串中任何或所有字符的数值。如果值> 127,那你就是在处理unicode值。
由于您的回叫是keyUp
,因此您可以一次执行此操作:
var str = $('#textarea').val();
var ascii = str.charCodeAt(str.length - 1) < 128;
(你也可以循环遍历字符串长度,但这是多余的,因为你一次只进行一次击键。)