以字节为单位计算文本长度

以字节为单位计算文本长度

本文介绍了以字节为单位计算文本长度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述




我需要在文本

输入中计算文本的物理长度。术语物理的是指物理的。在这种情况下,我认为
将7bit-Ascii视为每个字符一个字节。其他字符

可能更长,例如西里尔字母每个字符2个字节。


有没有一种安全简便的方法来注意非7bit-Ascii输入?


干杯,


M.


-

对复杂的乐趣感兴趣?你,老公,女朋友。

越多越好。与Kirby取得联系,仅通过WASTE,Box 7391,LA

- = - = - - = - = - = - = - - = - = -

Martin Dietze - = - = -

推荐答案




有这里有两个问题。第一个是unicode

个字符(代码点)的数量。第二个是否有任何unicode

字符需要超过7位才能代表。


函数charCount(str){

//计算unicode字符的数量,这可能与

str.length

var esc = escape(str); //逃避比encodeURI更强大

返回esc.replace(/%uD [CF] ../ g,'''')

.replace(/%u .... / g,''"'')

.replace(/%../ g,"''")

.length;

}


函数SevenBitsOrLess(str){

//如果str包含需要8或
更多位

var esc = escape(str);

如果(esc.match(/%u /))返回false;

返回(!esc.match(/%[89A-F] /));

}


//示例

var str0 =" ab



There are two questions here. The first is the number of unicode
characters (code points). The second is whether there are any unicode
characters requiring more than 7 bits to represent.

function charCount(str) {
// counts the number of unicode characters, which may differ from
str.length
var esc = escape(str); // escape more robust than encodeURI
return esc.replace(/%uD[C-F]../g,'''')
.replace(/%u..../g,''"'')
.replace(/%../g,"''")
.length;
}

function SevenBitsOrLess(str) {
// returns false if str includes a unicode character requiring 8 or
more bits
var esc = escape(str);
if (esc.match(/%u/)) return false;
return (!esc.match(/%[89A-F]/));
}

// Example
var str0 = "ab




这篇关于以字节为单位计算文本长度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-27 22:35