0

以下是我已经写过的内容,并且运行良好:

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)');

}); 这是上面的代码

现在我想做的是:

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 个。

有什么解决办法吗?

4

1 回答 1

1

使用String.charCodeAt获取字符串中任何或所有字符的数值。如果该值 > 127,那么您正在处理 unicode 值。

由于您是 callback is keyUp,因此您可以一次执行此操作:

var str = $('#textarea').val();
var ascii = str.charCodeAt(str.length - 1) < 128;

(您也可以只循环字符串长度,但这是多余的,因为您一次只敲击一个键。)

于 2013-04-10T17:28:22.210 回答