字符串:由单引号或双引号引起的一组字符序列
1、字符串字符
- charAt(n):位置n上的字符
- charCodeAt(n) :位置n上字符的unicode编码 ‘a’-97 ‘A’-65 ‘0’-48
- String.fromCharCode(65):数字对应的字符
var str = "hello";
var char = str.charAt(0);//h
var char_num = str.charCodeAt(1);//e对应的Unicode编码102
var res = String.fromCharCode(65)//A
2、字符串位置
- indexOf(“字符”) :从字符串左到右,查找符合字符第一个出现的为hi,找到则返回位置,找不到返回-1
- lastIndexOf(“字符”) :功能同上,区别从后往前查找符合字符
var str = "how do you do?";
var index = str.indexOf("o");//1 第一次出现元素的位置
var lastIndex = str.lastIndexOf("o");//12 最后一次出现元素的位置
var index_error = str.indexOf("z");//-1
var indexF = str.indexOf("o",2);//从第二个位置开始找字符在字符串中的位置
3、字符串切分
- substr(num) :表示从字符串位置num截取到最后,原字符串不变
- substr(num,length) :表示从字符串位置num截取length长度的字符串
- substring(num) :表示从字符串位置num截取到最后,原字符串不变;等同于substr(num)
- substring(from,to) :表示从字符串位置from开始,截取到位置to,不包含位置to
- slice(from,to) :表示从字符串位置from开始,截取到位置to,不包含位置to;等同于substring(from,to)
var str = "welcome to china";
var res = str.substr(2);//lcome to china
var res = str.substr(2,3);//lco
var res = str.substring(2);//lcome to china
var res = str.substring(2,6);//lcom
var res = str.slice(-2);//na
4、字符串<=>数组
字符串分割:split 将字符串分割成字符串数组;join将字符串数组拼接成字符串
var str = "My name is along";
var res = str.split(" ");//["My","name","is","along"]
var arr = ["My","name","is","along"];
var res_str = arr.join(" ");//将字符串数组拼成字符串
5、字符串大小写
- toLowerCase() :字符串转小写
- toUpperCase() :字符串转大写
var str = "abbgHGLERE";
str = str.toLowerCase();//abbghglere
str = str.toUpperCasee();//ABBGHGLERE
6、字符串替换
- replace :字符串第一次出现位置的替换
var str = "你好 nnd 祝你快乐 nnd 再见";
var newStr = str.replace("nnd","@");//你好 @ 祝你快乐 nnd 再见
//全局替换 截取位置替换
newStr = str.split("nnd").join("@");//你好 @ 祝你快乐 @ 再见
7、字符串反转
字符串反转:采用数组reverse反转转化
//"lmnopq"------>"qponml"
var str = "lmnopq";
var arr = str.split("");
var res = arr.reverse().join("");
8、字符串小练习
1、解析网址字符串uname和psw
var url = "http://www.baidu.com?uname=zs&psw=123456";
var arr = url.split("?");
arr = arr[1].split("&");
var uname = arr[0].split("=")[1];
var psw = arr[1].split("=")[1];
2、统计字符串大写字符,小写字符,数字,其他的个数
var str = "ADSAsarasr23432@#*$";
var small = 0, big = 0, num = 0, others = 0;
for (var i=0,len=str.length; i<len; i++) {
if (str.charAt(i) >= 'a' && str.charAt(i) <= 'z') {
small++;
}
else if (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z') {
big++;
}
else if (str.charAt(i) >= '0' && str.charAt(i) <= '9') {
num++;
}
else {
others++;
}
}
3、字符串中每个符号出现的次数
var str = 'afajriw432409dFDSR*&$)@';
//统计str中出现每一个字符(32~127)的次数
getCharCount(str);
function getCharCount(str) {
for(var code=32; code<=127; code++){
var ch = String.fromCharCode(code);
var count = 0;
for (var i=0,len=str.length; i<len; i++){
if (str.charAt(i) == ch) {
count++;
}
}
if (count > 0) {
console.log("字符"+ch+"出现的次数"+count);
}
}
}