我必须编写一个JavaScript函数,它将验证输入的文本是否在Double Byte.The文本框中是否应该只接受双字节日语字符、双字节英语字符和双字节特殊字符。我尝试了使用其他博客中提供的一些解决方案,但验证触发了单字节英语字符或单字节日语字符,即验证触发了单字节英语字符,但失败了单字节日语字符。
发布于 2017-03-10 13:00:41
字符可以是单字节、双字节、三字节等等。因此,在特定范围内跟随单字节。对于其他characters.Based也是如此,我已经创建了以下函数,它们将根据内存计算字符串的大小
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之间,则所有字符都是单字节和双字节的组合。
https://stackoverflow.com/questions/18913207
复制相似问题