一.创建字符串对象(string)
获取字符串的长度 (length方法)
<script type="text/javascript">
// 创建字符串对象
var str = 'i’am a student'; //比较简单
console.log(str);
var str1 = new String('i’am a teacher') //比较复杂
console.log(str1);
var length = str.length;
console.log(length); //14
var length1 = str1.length;
console.log(length1); //14
</script>
二.大小写转换方法
1.string.toLowerCase():把字符串转换成小写
2.string.toUpperCase():把字符串转换成大写
<script type="text/javascript">
// 创建字符串对象
var a = 'abcdefg';
var b = 'QWERTYYUI';
var str = a.toUpperCase()
console.log(str); // ABCDEFG
var str1 = b.toLowerCase()
console.log(str1); // qwertyyui
</script>
三.提取某个字符
1.string.charAt(index): 返回字符串中指定下标的字符
2.string.charCodeAt(index):返回指定下标的字符的unicode编码
<script type="text/javascript">
// 创建字符串对象
var a = 'qwer吾知荣耀,离别已久';
var b = a.charAt(2);
console.log(b);
var c = a.charCodeAt(2)
console.log('e 的ASCII码为:' + c); // e 的ASCII码为:101
var d = a.charCodeAt(5);
console.log(d); // 30693
</script>
四.查找指定字符串
1.string.indexof(findstr,index) 返回指定文本在字符串中首次出现的位置
2.string.lastindexof(findstr,index) 返回指定文本在字符串中最后出现的位置
3.string.search() 搜索特定的字符串,并返回匹配的位置
<script type="text/javascript">
// indexof 返回该字符串第一次出现的下标
var str = 'what is the matter with you i anyway';
var a = str.indexOf('i') // 5
console.log(a);
/* 如果 indexof 后面跟值的话,打印的结果随数字而定,
如果大于第一个小于第二个,则打印第二个值的下标
大于第二个小于第三个,则打印第三个的下标位置 */
console.log(str.indexOf('i',6)); // 20
console.log(str.indexOf('i',21)); // 28
// lastindexof 返回该字符串最后一次出现的下标
var b = str.lastIndexOf('i');
console.log(b); // 28
/* 如果 lastindexof 后面跟值的话,打印的结果随数字而定,
假设 值为 x ,则会查找从下标 0 开始到 x 内的 字符,
并打印出来最大的那个 ,找不到返回 -1*/
console.log(str.lastIndexOf('i',6)); // 5
console.log(str.lastIndexOf('i',21)); // 20
//若没有找到该字符,则返回 -1
var c = str.indexOf('b')
console.log(c);
// search 搜索特定的字符串,第二个参数没作用
var e = str.search('i')
console.log(e); // 5
console.log(str.search('i',21)); // 5
</script>
search()与indexOf()有什么区别
1.search()的参数必须是正则表达式,而indexOf()的参数只是普通的字符串
indexOf()是比search()更加底层的 方法
2.如果只是对一个具体字符串来查找,那么使用indexOf()的系统资源消耗更小,效率更高
如果查找具有某些特征的字符串(例如查找以a开头,后面是数字的字符串),那么indexOf()就无能为力,必须要使用正则表达式和search()方法了
3.大多时候用indexOf()不是真的想知道子字符串的位置,而是想知道长字符串中是否包含该子字符串。如果返回索引为-1,那么说明没有,反之则有
四.提取部分字符串
1.slice() 方法:slice(start, end)
2.substring()方法:substring(start, end)
3.substr()方法:substr(start, length)
<script type="text/javascript">
/* slice()方法 */
/* 提取从下标为5到10之间所有的字符串 */
var str = 'what is the matter with you anyway';
var str1 = str.slice(5, 11) /* 不含10*/
console.log(str1);
/* 提取从下标为7后面所有的字符串 */
var str2 = str.slice(7)
console.log(str2);
/* 从后面提取从下标为-11到-7之间所有的字符串 */
var str3 = str.slice(-11,-7)
console.log(str3);
/* 提取从下标为-11后面所有的字符串 */
var str4 = str.slice(-11)
console.log(str4);
/* substring()方法 */
var res = str.substring(2,11)
console.log(res);
var res1 = str.substring(7)
console.log(res1);
/* 无法接受负的索引,语法正确没有值 */
var res2 = str.substring(-13,-7)
console.log(res2);
var res3 = str.substring(-7)
console.log(res3); /* 全部打印出来*/
/* substr()方法 */
/* 第二个参数规定被提取部分的字符串长度。第二个参数不能为负,因为它指的是长度。 */
var sub = str.substr(2,10)
console.log(sub);
var sub1 = str.substr(7)
console.log(sub1);
var sub2 = str.substr(-13,7)
console.log(sub2);
var sub3 = str.substr(-13)
console.log(sub3);
</script>
五.操作字符串
1.string.trim(): 删除字符串两端的空白字符
2.string.concat(): 连接两个或者多个字符串
3.string.split(): 按照括号里的字符,将字符串连接起来
4.string.replace(): 用另一个值替换字符串中指定的值
<script type="text/javascript">
// string.trim() 去空格,用处不大
var str = ' what is ';
var str1 = 'happened';
var a = str.trim()
console.log(a);
// string.concat() 连接两个字符串
var b = str.concat(str1)
console.log(b); // what is happened
// string.split() 拆分字符串,以括号里面的形式,给的是空值,所以返回的是一个个字母
var c = str1.split('');
console.log(c); //["h", "a", "p", "p", "e", "n", "e", "d"]
// string.replace() 替换字符串
var str2 = 'aabbccdd';
var d = str2.replace(/a/g, "z") // 全部替换
console.log(d);
var e = str2.replace(/a/i, "z") //首个替换
console.log(e);
</script>
六.案例:
有数组var array= ["America","Greece","Britain","Canada","China","Egypt"]
统计数组中包含“a”的字符串的个数
<script type="text/javascript">
/* 有数组var array= ["America","Greece","Britain","Canada","China","Egypt"]
统计数组中包含“a”的字符串的个数 */
// 先将数组转换成字符串,然后拆分为一个个字母,遍历,判断
var array= ["America","Greece","Britain","Canada","China","Egypt"]
var str = array.toString();
var str1 = str.split('');
var j = 0;
console.log(str1);
for(var i = 0;i < str1.length;i++){
if(str1[i] == 'a'){
j++
}
}
console.log(j);
</script>