Javascript 检测双字节字符

Javascript 检测双字节字符,javascript,dynamics-crm-2011,crm,dynamics-crm-4,Javascript,Dynamics Crm 2011,Crm,Dynamics Crm 4,我必须编写一个JavaScript函数来验证输入的文本是否为双字节。文本框应该只接受双字节日语字符、双字节英语字符和双字节特殊字符。我尝试使用其他博客中提供的许多解决方案,但针对单字节英语字符或单字节日语字符启动了验证,即针对单字节英语字符启动的验证很好,而针对单字节日语字符启动的验证失败。字符可以是单字节、双字节、三字节等等。所以单字节在特定范围内跟随。基于此,我创建了以下函数,这些函数将根据内存计算字符串的大小 function getByteLength(normal_val) {

我必须编写一个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;
} 
函数GetByTeleLength(正常值){
//力串类型
正常值=字符串(正常值);
var byteLen=0;
对于(变量i=0;ibyteLen+=c<(1我相信
“string.”charCodeAt(index)
(对于每个字符)应该返回一个数字>127i使用的函数isDoubleByte(str){for(var I=0,n=str.length;I255){return true;}return false;}if(!isDoubleByte(str)){alert(“验证失败”);}但这只适用于英语单字节。当我输入日语时,验证消息不会弹出。这不是你想要的吗?如果你输入日语,它不会失败,所以最好不要收到警报。你能至少提供一些字符串示例吗?系统应该接受IC 但不是IC。此文本可以附加双字节日语字符,如着 但不是像这样的单字节日语字符ゥ