如我有文字
------------------
6月1日上午消息, 15
DNS故障引发行业对暴风影音的热议, 32
也折射出中国软件发展的问题。 27
----------------
如上面的文字。
算他的真实长度中文为占2 (15+32+27)
然后有多少条, (3)
最长行有长度是多少 (32)
以上的数据只是自己看算出来的,还没有算特殊的如换行符
那么用js如何最快的算出上面的数据呢谢谢
------------------
6月1日上午消息, 15
DNS故障引发行业对暴风影音的热议, 32
也折射出中国软件发展的问题。 27
----------------
如上面的文字。
算他的真实长度中文为占2 (15+32+27)
然后有多少条, (3)
最长行有长度是多少 (32)
以上的数据只是自己看算出来的,还没有算特殊的如换行符
那么用js如何最快的算出上面的数据呢谢谢
var halfChar = ",。";
var arr = new Array();
arr[0] = "6月1日上午消息,";
arr[1] = "DNS故障引发行业对暴风影音的热议,";
arr[2] = "也折射出中国软件发展的问题。";
var len = 0;
var max = 0;
for(var i = 0; i < arr.length; i++) {
var rMax = 0;
for(var j = 0; j < arr[i].length; j++) {
if(halfChar.indexOf(arr[i].charAt(j)) >= 0){
len = len + 1;
rMax = rMax + 1;
}else if(arr[i].charCodeAt(j)>128){
len = len + 2;
rMax = rMax + 2;
}else{
len = len + 1;
rMax = rMax + 1;
}
}
if(rMax > max){
max = rMax;
}
}
alert("一共有"+arr.length+"条,长度:"+len+",最长:"+max);
</script>
function counter(msg){
msg = (msg || '').split('\n');
var len1 = msg.length, len2 = 0 ,i = 0;
for(; i < len1; i++){
var l = msg[i].split('').length;
if(l > len2) len2 = l;
}
alert('一共有' + len1 + '条消息,最长的消息有 + len2 + '个字符');
}
alert('一共有' + len1 + '条消息,最长的消息有' + len2 + '个字符');
<textarea id="s" style="width:80%;height:60%;">
如我有文字
------------------
6月1日上午消息, 15
DNS故障引发行业对暴风影音的热议, 32
也折射出中国软件发展的问题。 27
----------------
如上面的文字。
算他的真实长度中文为占2 (15+32+27)
然后有多少条, (3)
最长行有长度是多少 (32)
以上的数据只是自己看算出来的,还没有算特殊的如换行符
那么用js如何最快的算出上面的数据呢谢谢
</textarea><script language="javascript">
var ds = document.getElementById('s');
var reportString = function(str){
var ta = str.split(/[\r\n]/),iline = ta.length,imax = 0,itotal = 0,itmp = 0;
while(ta.length){
itmp = new String(ta.shift().replace(/[^\x00-\xff]/g,'**')).length;
imax = Math.max(imax,itmp);
itotal += itmp;
}
alert('该字符串共有 '+iline+' 行\n\n总计长度为 '+itotal+' \n\n最长行的长度为 '+imax);
};reportString(ds.value);
</script>
str = escape("汉字abc,,");
len = 0;
for(i=0;i<str.length;i++,len++) {
if(str.charAt(i)=="%") {
if(str.charAt(++i)=="u") {
i += 3;
len++;
}
i++;
}
}
alert(len); str = "汉字abc,,";
len = 0;
for(i=0;i<str.length;i++){
iCode = str.charCodeAt(i);
if((iCode>=0 && iCode<=255)||(iCode>=0xff61 && iCode<=0xff9f)){
len += 1;
}else{
len += 2;
}
}
alert(len);