首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符类型检测

字符类型检测
EN

Stack Overflow用户
提问于 2013-04-11 00:50:50
回答 1查看 74关注 0票数 0

下面是我已经写好的代码,它运行良好:

代码语言:javascript
复制
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

现在我想要做的是:

代码语言:javascript
复制
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个字符

属于urf8类型的AND **if**,那么它应该会计数到200个1。

有什么解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-11 01:28:22

使用String.charCodeAt获取字符串中任意或所有字符的数值。如果值大于127,那么您就是在处理Unicode值。

因为你的回调是keyUp,所以你可以一次做一个:

代码语言:javascript
复制
var str = $('#textarea').val();
var ascii = str.charCodeAt(str.length - 1) < 128;

(您也可以只遍历字符串长度,但这是多余的,因为您一次只进行一个击键操作。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15931855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档