高手来看看啊!这个程序里这个参数是什么意思啊?

来源:百度知道 编辑:UC知道 时间:2024/06/15 19:01:44
function bytes(str){
if(typeof(str)!='string'){
str = str.value;
}
var len = 0;
for(var i = 0; i < str.length; i++){
if(str.charCodeAt(i) > 127){
len++;
}
len++;
}
return len;
}
这个程序中的str.charCodeAt(i) > 127是什么意思啊?

这个程序的语言: javaScript

程序: 是一个函数,function

作用: 检查变量中是否含有中文(“对中国人来说”)

分析:

1。typeof(str)!='string' 检查str的类型是否为String

2。str.charCodeAt(i) > 127 分两步:str.charCodeAt(i)什么意思和>127什么意思

str.charCodeAt(i) 返回字符串中的每个字符的十进制植;
(str.charAt(i)返回指定位的字符)
例如: str="abce";
str.charAt(1)返回 b (str.charAt(0)返回a)
str.charCodeAt(1)返回 98(b的十进制值)

>127 十进制值大于127
小于127的都是大小写字母,数字,标点符号,空格 ……
例如:
b 十进制值98小于127,
8 十进制值56小于127,
% 十进制值37小于127,
龙 十进制值???大于127 (总之>127多少我也不知道)

str.charCodeAt(i) > 127 的意思就是分别检查每个字符是否>127
(是否含有大小写字母,数字,标点符号,空格之外的其他字符)

剩下的 if条件 len++ 就不说了(你都懂的)
(多了一个len++,后一个去掉)

主要作用: 检查注册的用户名, 还有( 多者呢)

实验: 调用函数bytes();

byte("snowyeye") 返回 0;
byte("napolun180410") 返回 0;
byte("百度知道") 返回 4;

区分全角,半角。

字符串中的第i位的字符的ASCII码如果大于127的话<