1 /**
2 * JS字符串(String)
3 * 字符串是一组由16位值组成的不可变的有序序列
4 * 字符串直接量:由单引号或双引号括起来的字符串序列
5 * 由单引号界定的字符可以包含双引号,由双引号界定的字符可以包含单引号
6 * 转义字符: console.log("\o","\b","\t","\n","\v","\f","\r","\"","\'","\\","\x00","u0000");
7 */
8
9 /**
10 * 字符串的创建
11 * 引用字符串的属性时,js就会将字符串值通过调用 new String(str) 的方式将 str 转换成对象,
12 * 这个对象继承了字符串的方法,并被用来处理属性的引用,一旦属性引用结束,这个创建的对象就会销毁
13 * (其实现实上并不一定创建或销毁这个临时对象,然而整个过程看起来是这样)---摘自《JavaScript权威指南》
14 */
15 //字符串直接量
16 var str="string";
17 //String 类型是字符串的对象包装类型
18 var str=new String("string");
19
20 //字符串直接量可以以反斜线结束,拆分成多行来写
21 var str="line1\
22 ,line2";
23 console.log(str);//line1,line2
24
25 /**
26 * 字符串方法:
27 * charAt()、charCodeAt()、fromCharCode()、concat()、slice()、substring()、indexOf()、lastIndexOf()、
28 * toLowerCase()、toUpperCase()、trim()、localeCompare()、match()、search()、replace()、split()
29 */
30
31 //charAt()方法,返回字符串中指定位置的一个字符(也可以使用str[i]这种方法来访问字符串中的字符)
32 //始末状态:不会改变字符串本身
33 //参数:一个介于0 和字符串长度减1之间的整数。 (0~length-1),如果没有提供索引,则默认为0
34 var str="hello world";
35 console.log(str.charAt(6));//w
36
37 //charCodeAt()方法,返回字符串中指定位置的那个字符的编码
38 //始末状态:不会改变字符串本身
39 //参数:一个介于0 和字符串长度减1之间的整数。 (0~length-1),如果没有提供索引,则默认为0
40 var str="hello world";
41 console.log(str.charCodeAt(6));//119 "w"的 Unicode 编码
42
43 //fromCharCode()方法,返回使用指定的 Unicode 值序列创建的字符串
44 console.log(String.fromCharCode(65,66,67));//ABC
45
46 //concat()方法,将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回
47 //始末状态:不会改变字符串本身
48 //参数:一个或多个字符串
49 var str="hello";
50 console.log(str.concat("world",["ni",["hao",["ma"]]],{name:"guang"}));//helloworldni,hao,ma[object Object]
51
52 //slice()方法,提取并返回指定的字符串
53 //始末状态:不会改变字符串本身
54 //参数:参数一:提取字符串的起始位置 参数二(可选):提取字符串的结束位置(提取时不包括该位置的字符),默认到字符串末尾,负数表示倒数第几个元素
55 var str="hello world";
56 console.log(str.slice(2));//llo world
57 console.log(str.slice(1,-2));//ello wor
58
59 //substring()方法,返回一个字符串在开始索引到结束索引之间的一个子集, 或从开始索引直到字符串的末尾的一个子集
60 //始末状态:不会改变字符串本身
61 //参数:参数一:提取字符串的起始位置 参数二(可选):提取字符串的结束位置(提取时不包括该位置的字符),默认到字符串末尾
62 //若参数小于 0 或为 NaN,则被当作 0 。若参数大于 stringName.length,则被当作 stringName.length
63 //如果 参数一 大于 参数二 则 substring 的执行效果就像两个参数调换了一样
64 var str="hello world";
65 console.log(str.substring(7));//orld
66 console.log(str.substring(4,-2));//hell 解析:-2 被当做0,subtring(4,0)被当做substring(0,4)
67
68
69 //indexOf()方法,返回调用 String 对象中第一次出现的指定值的索引,如果没有找到 -1,对大小写敏感
70 //始末状态:不会改变字符串本身
71 //参数:参数一:要查找的值 参数二(可选):查找的起始位置,默认值为0(若小于0则如同传入0,若大于等于字符串长度则如同传入字符串长度得值)
72 //当参数一是空字符串时,看当前方法的最后一个例子
73 var str="hello world";
74 console.log(str.indexOf("l"),str.indexOf("L"));//2 -1 解析:前面找到第一个"l",后面找不到"L"(对大小写敏感)
75 console.log(str.indexOf("l",6),str.indexOf("l",str.length));//9 -1
76 //解析:前面从下标为6的位置开始查找"l",后面大于等于字符串长度如同传入字符串长度的值自然找不到对应的字符,因此返回-1
77 console.log(str.indexOf("",-1),str.indexOf("",str.length-2),str.indexOf("",str.length+1));//0 9 11
78 //传入-1如同传入0,因此从第0个位置开始搜索空字符串,找到第0个位置有空字符串,因此返回0
79 //传入str.length-2,因此从第str.length-2个位置开始搜索空字符串,找到第str.length-2个位置有空字符串,因此返回str.length-2
80 //传入str.length+1如同传入str.length,因此从第str.length个位置开始搜索空字符串,找到第str.length个位置有空字符串,因此返回str.length
81
82
83
84 //lastIndexOf()方法,返回调用 String 对象中最后一次出现的指定值的索引,如果没有找到 -1,对大小写敏感,从后向前查找字符串中的字符
85 //始末状态:不会改变字符串本身
86 //参数:参数一:要查找的值 参数二(可选):查找的起始位置,默认值为字符串最后一个字符,若小于0则如同传入0,若大于等于字符串长度搜索整个字符串
87 //当参数一是空字符串时,看当前方法的最后一个例子
88 var str="hello world";
89 console.log(str.lastIndexOf("l"),str.lastIndexOf("L"));//9 -1 解析:前面找到最后一个"l",后面找不到"L"(对大小写敏感)
90 console.log(str.lastIndexOf("l",6),str.lastIndexOf("l",str.length));//3 9
91 //解析:前面,从下标为6的位置开始从后向前查找,找到字符串中的第二个"l"并返回其下标。后面,参数二大于等于字符串长度,所以从后向前搜索整个字符串,找到字符串中的第三个"l"并返回其下标
92 console.log(str.lastIndexOf("",-1),str.lastIndexOf("",str.length-2),str.indexOf("",str.length+10));//0 9 11
93 //传入-1如同传入0,因此从第0个位置开始搜索空字符串,找到第0个位置有空字符串,因此返回0
94 //传入str.length-2,因此从第str.length-2个位置开始搜索空字符串,找到第str.length-2个位置有空字符串,因此返回str.length-2
95 //传入str.length+1,从后向前搜索整个字符串,找到第str.length个位置有空字符串,因此返回str.length
96
97 //toLowerCase()方法,将字符串值转换为小写形式,并返回
98 //始末状态:不会改变字符串本身
99 //参数:无
100 var str="HELLO WoRLD";
101 console.log(str.toLowerCase(),str); // hello world HELLO WoRLD
102
103 //ttoUpperCase()方法,将字符串值转换为大写形式,并返回
104 //始末状态:不会改变字符串本身
105 //参数:无
106 var str="hello world";
107 console.log(str.toUpperCase(),str);//HELLO WORLD hello world
108
109 //trim()方法,从一个字符串的两端删除空白字符。在这个上下文中的空白字符是所有的空白字符 (space, tab, no-break space 等) 以及所有行终止符字符(如 LF,CR)
110 //始末状态:不会改变字符串本身
111 //参数:无
112 var str=" h el lo ";
113 console.log(str.trim(),str);//"h el lo"," h el lo "
114
115 //localeCompare()方法,返回一个数字表示是否 引用字符串 在排序中位于 比较字符串 的前面,后面,或者二者相同。
116 //当 引用字符串 在 比较字符串 前面时返回 负数。当 引用字符串 在 比较字符串 后面时返回 正数。相同位置时返回 0
117
118 //下面四种方法在"正则表达式及其使用例子"中有详解,点击链接即可跳转到对应方法
119 //match()方法点击这里、search()方法点击这里、replace()方法点击这里、split()方法点击这里