字符串(String)对象
1.创建string对象的语法:(2种)
var str1=new String("hello"); var str2=String("world");
2.属性
var x=str1.length; console.debug(x);//5
3.方法(部分)
3.1查询方法
- charAt(index) 返回在指定位置的字符,可根据索引位置查找字符
- charCodeAt(index) 返回在指定位置的字符的Unicode编码,可根据索引位置查找字符编码
- indexOf(searchvalue,fromindex) 检索字符串,根据字符(串)查找首次出现的位置,如果找不到则返回-1;
- lastindexOf(searchvalue,fromindex) 从后向前搜索字符串,根据字符(串)查找最后一次出现位置
不指定第二个起始位置时从头开始查找,如果指定则从指定位置开始查找;
searchvalue必需,规定需检索的字符串值;
fromindex可选,表示在字符串中开始检索的位置
var str="HelloWorld"; var ch1=str.charAt(5);//W,等同于str[5] var ch2=str.charCodeAt(1);//101 e 的ASCII码为101 console.debug("ch1="+ch1+";typeof ch1:"+typeof ch1);//string console.debug("ch2="+ch2+";typeof ch1:"+typeof ch2);//number var ret=str.indexOf("o");//4 console.debug("ret="+ret+";typeof ret:"+typeof ret);//number ret=str.lastIndexOf("o");//6 console.debug("ret="+ret); console.debug("--------"); // 查找出下列字符串中所有字母o出现的位置 var ss="HeoloeWorldGropud"; ret=-1; while(true){ ret=ss.indexOf("o",ret+1); //ret+1表示从第一个o出现的位置的下一个位置开始检索 if(ret==-1){ break; } console.debug("o in "+ret); }
后台运行结果:
3.2大小写转换
toLowerCase()
stringObject.toLowerCase(),将字符串中所有大写字符全部转换成小写字符
toUpperCase()
stringObject.toUpperCase(),将字符串中所有小写字符全部转换成大写字符
3.3截取方法
substr(star,length)
star必需,为数值,表示起始位置,如为负数,那么位置从字符串的尾部开始算起(倒数)
length可选,数值,表示截取的数目,如没有,表示从起始位置到字符串结尾
substring(start,stop)
start必需,非负整数,表示起始位置,不支持倒数
stop可选,非负整数,结束位置,截取的是结束位置的前一个字符
start与stop大小想法有自动切换的能力
slice(start,end)
start起始位置,支持倒数;
end结束位置,可选,支持倒数,如未提供,截取到结束
slice无自动交换能力
var str="HelloWorld"; var s1=str.substr(-5);//World var s2=str.substr(5,3);//Wor console.debug("str:"+str); console.debug("s1:"+s1); console.debug("s2:"+s2); var s3=str.substr(-5,3);//Wor console.debug("s3:"+s3); var s4=str.substr(25,3);//"" console.debug("s4:"+s4); console.debug("--------"); s1=str.substring(5);//World s2=str.substring(5,8);//Wor console.debug("s1:"+s1); console.debug("s2:"+s2); s3=str.substring(5,2);//自动交换:llo console.debug("s3:"+s3); s4=str.substring(5,35);// console.debug("s4:"+s4); console.debug("--------"); s1=str.slice(5);//World s2=str.slice(5,8);//Wor console.debug("s1:"+s1); console.debug("s2:"+s2); s3=str.slice(-5,-2);//Wor console.debug("s3:"+s3); s4=str.slice(-5,-8);//无法自动交换 console.debug("s4:"+s4);
后台运行结果:
3.4分割方法
split(separator,howmany)
separator 必需,用字符串或者正则表达式,从该参数指定的地方分割字符串
howmany 可选,可指定返回的数组的最大长度,如没有设置该参数,则整个字符串都会被分割,而不考虑其长度
var str="tom,mike,jerry,andy"; var arr=str.split(","); console.debug("str:"+str); console.debug("arr.length:"+arr.length); console.debug(arr); str=",b,c,d,"; arr=str.split(","); console.debug(arr); console.debug("arr.length:"+arr.length);
后台运行结果:
3.5静态方法
fromCharCode(num1,num2,num3..numX)
从字符编码创建一个字符串;num*必需,一个或多个Unicode值
不使用对象访问,而是使用类型名称访问的方式
可看作charCodeAt()的逆方法
var s1=String.fromCharCode(97,98,99,100); var s2=String.fromCharCode(0x4e00,0x4e01,0x9fa5); console.debug(s1);//abcd console.debug(s2);//一丁X
后台运行结果: