字符串属性和方法
-
属性:
-
方法:
-
charAt()
-
charCodeAt()
-
concat()
-
fromCharCode()
-
indexOf()
-
lastIndexOf()
-
match()
-
replace()
-
search()
-
slice()
-
split()
-
substr()
-
substring()
-
toLowerCase()
-
toUpperCase()
-
valueOf()
-
字符串简单应用的小案例
charAt ___返回位置在n上的字符
var str = "hello World!";
var str2 = "世界你好!";
var ch = str.charAt(6);
var ch1 = str2.charAt(1);
alert(ch); //显示W
alert(ch1); //显示界
返回顶层目录
charCodeAt ___返回位置n上的字符的unicode编码
var str = "hello World!";
var ch = str.charCodeAt(6);
alert(ch); //结果为87
返回顶层目录
fromCharCode____返回数字对应的字符
var res = String.fromCharCode(65);
alert(res); //结果为A
返回顶层目录
indexOf
从左到右在字符串中查到第一个符合的字符,找到就返回该位置,找不到返回-1
var str = "how do you do?";
var index = str.indexOf("o"); //从左往右开始查找 “o”
var index1 = str.indexOf("o", 2); //在第二个字符处,从左往右开始查找 “o”
var index2 = str.indexOf("a"); //从左往右开始查找 “a”
alert(index);
alert(index1);
alert(index2);
返回顶层目录
lastIndexOf
从右到左在字符串中查到第一个符合的字符,找到就返回字符在该字符串中的位置,找不到返回-1
var str = "how do you do?";
var index = str.lastIndexOf("?"); //从右往左开始查找 “?”
var index1 = str.lastIndexOf("o", 11); //在第11个字符处,从右往左开始查找 “o”
var index2 = str.indexOf("a"); //从右往左开始查找 “a”
alert(index);
alert(index1);
alert(index2);
返回顶层目录
substr
var str = "welcome to china";
var str1 = "今天真是美好的一天!";
/**
* substr(num) 表示字符串从num这个位置一直截取到最后,原来字符串不变
* substr(num,length) 表示字符串从num这个位置截取length长度的字符串
*/
var res = str.substr(2); //从索引为2的字符开始,一直截取到字符串的末尾
var res1 = str.substr(2, 3); //从索引为2的字符串开始,向后截取3个字符
var res2 = str1.substr(2);
var res3 = str1.substr(2, 3);
console.log(res);
console.log(res1);
console.log(res2);
console.log(res3);
返回顶层目录
substring
var str = "welcome to china";
var str1 = "今天真是美好的一天!";
/**
* substring(num) 表示字符串从num这个位置一直截取到最后,原来字符串不变
* substring(from,to) 表示字符串从from位置开始 截取到to这个位置 但是不包含to这个位置
*/
var res = str.substring(3); //从索引为3开始截取,知道字符串末尾
var res1 = str.substring(2, 3); //截取索引为2-3的字符
var res2 = str1.substring(3);
var res3 = str1.substring(2, 3);
console.log(res);
console.log(res1);
console.log(res2);
console.log(res3);
返回顶层目录
split
//split将字符串分割成字符数组
var str = "My name is along";
var res = str.split(" ");
console.log(res); // 结果为返回一个数组:["My", "name", "is", "along"]
var arr = res;
var res_str = arr.join(" ");
console.log(res_str); //My name is along
split的应用
- 拿到网址字符串的uname和psw
//多次截取 var url = "http://www.baidu.com?uname=zs&psw=123456"; var arr = url.split("?"); console.log(arr); arr = arr[1].split("&"); // ["uname=zhangsan","psw=123456"] var uname = arr[0].split("=")[1]; var psw = arr[1].split("=")[1]; console.log(uname, psw);
- 字符串反转 —— 将"lmnopq" 变成"qponml"
//字符串反转 var str = "lmnopq"; var arr = str.split(""); var res = arr.reverse().join(""); console.log(res); // qponml
返回顶层目录
toLowerCase
var str1 = "abbgHGtY";
console.log(str1.toLowerCase());
console.log(str1);
返回顶层目录
toUpperCase
var str1 = "abbgHGtY";
console.log(str1.toUpperCase());
console.log(str1);
返回顶层目录
字符串简单应用的小案例
-
统计字符串中小写字母个数 大写字母个数 数字字符个数 其他字符的个数
var str = "ahhf323hj5%#$Ab!2Uy"; function fnCount(str) { // 思路 分别对字符串中每个字符进行判断 var small = 0; var big = 0; var num = 0; var others = 0; for (var i = 0; i < str.length; i++) { var ch = str.charAt(i); if (ch >= "a" && ch <= "z") { small++; } else if (ch >= "A" && ch <= "Z") { big++; } else if (ch >= "0" && ch <= "9") { num++; } else { others++; } } console.log("小写字母个数:" + small + "\n大写字母个数:" + big + "\n数字字符的个数:" + num + "\n其他字符的个数:" + others); } fnCount(str);
-
统计str中出现字符(32~127)的次数
var str = "ahhf323hj5%#$Ab!2Uy"; function getCharCount(str) { // for (var code = 32; code <= 127; code++) { var ch = String.fromCharCode(code); var count = 0; // 对给定的字符串循环 for (var i = 0; i < str.length; i++) { if (str.charAt(i) === ch) { count++; } } // count>0证明有出现 if (count > 0) { console.log("字符" + ch + "出现了" + count + "次"); } } } getCharCount(str);