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

检测双字节字符
EN

Stack Overflow用户
提问于 2013-09-20 17:24:32
回答 1查看 3.7K关注 0票数 0

我必须编写一个JavaScript函数,它将验证输入的文本是否在Double Byte.The文本框中是否应该只接受双字节日语字符、双字节英语字符和双字节特殊字符。我尝试了使用其他博客中提供的一些解决方案,但验证触发了单字节英语字符或单字节日语字符,即验证触发了单字节英语字符,但失败了单字节日语字符。

EN

回答 1

Stack Overflow用户

发布于 2017-03-10 13:00:41

字符可以是单字节、双字节、三字节等等。因此,在特定范围内跟随单字节。对于其他characters.Based也是如此,我已经创建了以下函数,它们将根据内存计算字符串的大小

代码语言:javascript
复制
function getByteLength(normal_val) {
    // Force string type
    normal_val = String(normal_val);

    var byteLen = 0;
    for (var i = 0; i < normal_val.length; i++) {
        var c = normal_val.charCodeAt(i);
        byteLen +=  c < (1 <<  7) ? 1 :
                c < (1 << 11) ? 2 :
                c < (1 << 16) ? 3 :
                c < (1 << 21) ? 4 :
                c < (1 << 26) ? 5 :
                c < (1 << 31) ? 6 : Number.NaN;
     }
     return byteLen;
} 

我已经创建了一个js小提琴,它将根据内存来确定输入文本的大小。

http://jsfiddle.net/paraselixir/d83oaa3v/5/

在本例中,您可以使用字符串的内存大小来确定双字节-

因此,如果字符串有x个字符,内存大小是x,那么所有字符都是单字节;如果字符串有x个字符,内存大小是2x,那么所有字符都是双字节。如果字符串有x个字符,并且内存大小在x和2x之间,则所有字符都是单字节和双字节的组合。

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

https://stackoverflow.com/questions/18913207

复制
相关文章

相似问题

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