编写一个方法 求一个字符串的字节长度
<script language="javascript" type="text/javascript">
new function(s)
{
if(!arguments.length||!s) return null;
if(""==s) return 0;
var l=0;
for(var i=0;i<s.length;i++)
{
if(s.charCodeAt(i)>255) l+=2;
else l++;
}
alert(l);
}("你");
</script>
这段代码有几个地方不是很懂,一个是arguments 是什么意思。还有!s代表什么?还有charCodeAt()的意思是不是什么意思。请教大家。
<script language="javascript" type="text/javascript">
new function(s)
{
if(!arguments.length||!s) return null;
if(""==s) return 0;
var l=0;
for(var i=0;i<s.length;i++)
{
if(s.charCodeAt(i)>255) l+=2;
else l++;
}
alert(l);
}("你");
</script>
这段代码有几个地方不是很懂,一个是arguments 是什么意思。还有!s代表什么?还有charCodeAt()的意思是不是什么意思。请教大家。
解决方案 »
- JQ 简单的追加元素弄了1小时了,大神帮秒下,谢谢!
- 急急急,javascript中ie生成空格问题?
- js响应不了方向键
- 怎样在文本框里在输入的时候,就可以屏蔽掉禁止的字符?
- 求解决方法..................已经郁闷好长时间了,有的说js可以解决。所以就来了。。。。
- if else && || ! 搅在一起,思维混乱了
- #######再再次请教函数递归,去掉空格函数###############
- meizz(梅花雨):请问怎样把一个帧里的内容保存成htm文件上传到服务器和数据库
- 关于网页后退的疑惑,
- for in循环中的i到底是个啥
- 谁知道如何在firefox操作音乐播放,暂停?
- QQ新闻面板的效果,怎么弄的呢,大家帮我啊
arguments[0]代表第一个参数
arguments.length代表参数的个数
!s s是参数 if(!s)是说参数不存在,执行return null;
charCodeAt() 返回的是Unicode 编码
如:
<script type="text/javascript">
var str="a"
alert(str.charCodeAt(0))
</script>
返回97
if(s.charCodeAt(i)>255) l+=2;
估计Unicode 编码中大于255的算2个字节吧 汉字之类的
汉字跟英文字母按理说应该是一样长的
new function(s) { // s指最后括号中的参数"你好abc"
//arguments指最下面括号中的参数集, .length指此集合的参数个数
//如果最下面括号中是("你好abc","真诚得分"),那么arguments={"你好abc","真诚得分"}, .length=2
//!s 如楼上所解,表示参数是否非空
if(!arguments.length||!s)
return null;
if(""==s)
return 0;
var l=0;
for(var i=0;i <s.length;i++){
//中文的值都是大于255的,所以“你好”为4个字节,可以测试:alert(s.charCodeAt(i));
if(s.charCodeAt(i)>255)
l+=2;
else
l++;
}
alert(l);
}("你好abc");
</script>
{
var out = input.replace(/[^\x00-\xff]/g,'**');
return out.length;
}
<script type="text/javascript">var getStr = function(str,n){
var tmpStr = str.substr(0,n);
var tmpCode = tmpStr.replace(/[^\x00-\xff]/g,'\r\n').split('');
n = (tmpCode[n-1]=='\r')?n-2:n-1;
var l = tmpCode.slice(0,n).join('').replace(/\r\n/g,'*').length+1;
return tmpStr.substr(0,l);
};alert(getStr('我ABC汉DE字',6));</script>
演示请参见JSLib中[取字符中文算两个]部分!