一、String介绍
-
作用:JavaScript 字符串用于存储和处理文本
-
用法:
- 可以使用单引号或多引号 示例:
var str = 'string'; var str = "string";- 访问字符串中的字符方式:使用索引位置 示例:
var str = "string"; var strChar = str[0]; // 's' var strChar = str[2]; // 'r'- 可以在字符串中使用引号,但是字符串中的引号不要与字符串的引号相同 示例:
var answer = "It's alright"; var answer = "He is called 'Johnny'"; var answer = 'He is called "Johnny"';- 可以在字符串中添加转义字符来使用引号
字符串中可以使用转义字符转义的特殊字符:
- ' : 单引号
- " : 双引号
- \ : 反斜杠
- \n : 换行
- \r : 回车
- \t : tab,制表符
- \b : 退格符
- \f : 换页符
示例:
var x = 'It\'s alright'; var y = "He is called \"Johnny\"";
1.1 字符串长度
可以使用内置属性 length 来计算字符串的长度:
var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;
1.2 字符串可以是对象
-
可以使用字符创建:var str = "string"
-
可以使用 new 关键字将字符串定义为一个对象:var str = new String("string")
缺点:会拖慢执行速度,并可能产生其他副作用
示例:
var x = "John";
var y = new String("John");
typeof x // 返回 String
typeof y // 返回 Object
x === y // false
注意点:
- 原始值字符串,如 "John", 没有属性和方法(因为他们不是对象)。
- 原始值可以使用 JavaScript 的属性和方法,因为 JavaScript 在执行方法和属性时可以把原始值当作对象。
二、字符串属性
2.1 constructor
返回创建字符串属性的函数
2.2 length
返回字符串的长度
示例:
var str = "ABCDEF";
str.length // 6
2.3 prototype
允许向对象添加属性和方法
三、字符串方法
3.1 charAt()
作用:返回指定索引位置的字符
语法:string.charAt(index)
参数值:
- index:必需。表示字符串中某个位置的数字,即字符在字符串中的位置
返回值:String。返回在指定位置的字符
示例:
var str = "ABCDEF";
str.charAt(0) // A
str.charAt(1) // B
str.charAt(str.length - 1) // F。返回字符串中的最后一个字符
3.2 charCodeAt()
作用:返回在指定的位置的字符的 Unicode 编码。
语法:string.charCodeAt(index)
参数值:
- index: 必需。表示字符串中某个位置的数字,即字符在字符串中的下标。
返回值:Number。返回在指定的位置的字符的 Unicode 编码。返回值是 0 - 65535 之间的整数,表示给定索引处的 UTF-16 代码单元。
示例:
var str = "HELLO WORLD";
var n = str.charCodeAt(0); // 72
// 返回字符串中最后一个字符的 Unicode 编码:
var n = str.charCodeAt(str.length-1); // 68
3.3 split()
作用:把字符串分割为字符串数组。
语法:string.split(separator,limit)
参数值:
- separator: 可选。字符串或正则表达式,从该参数指定的地方分割 string Object。
- limit: 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
返回值:Array。一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 string Object 分割成子串创建的。返回的数组中的字串不包括 separator 自身。
注意点:
- split() 只会返回新数组,不会改变原始字符串
示例:
var str="How are you doing today?";
var n=str.split(" "); // [How,are,you,doing,today?]
// 省略分割参数:
var str="How are you doing today?";
var n=str.split(); // ['How are you doing today?']
// 分割每个字符,包括空格:
var str="How are you doing today?";
var arr = str.split(""); // ['H', 'o', 'w', ' ', 'a', 'r', 'e', ' ', 'y', 'o', 'u', ' ', 'd', 'o', 'i', 'n', 'g', ' ', 't', 'o', 'd', 'a', 'y', '?']
// 使用 limit 参数:
var str="How are you doing today?";
var n=str.split(" ",3); // ['How', 'are', 'you']
// 使用字符作为分隔符
var str="How are you doing today?";
var n=str.split("o"); // ['H', 'w are y', 'u d', 'ing t', 'day?']
3.4 concat()
作用:连接两个或更多字符串,并返回新的字符串。
语法:string.concat(string1, string2, ..., stringX)
参数值:
- string1, string2, ..., stringX: string1, string2, ..., stringX
返回值:String。两个或多个字符串连接后生成的新字符串。
示例:
// 连接两个字符串
var str1 = "Hello ";
var str2 = "world!";
var n = str1.concat(str2); // Hello world!
// 连接三个字符串
var str1="Hello ";
var str2="world!";
var str3=" Have a nice day!";
var n = str1.concat(str2,str3); // Hello world! Have a nice day!
3.5 substr()
作用:从起始索引号提取字符串中指定数目的字符。
语法:string.substr(start,length)
参数值:
- start: 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
- length: 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。
返回值:String。返回一个新的字符串
注意点:不会改变原始字符串
示例:
// 传length
var str="Hello world!";
var n=str.substr(2,3); // llo
// 不传length
var str="Hello world!";
var n=str.substr(2) // llo world!
3.6 substring()
作用:提取字符串中两个指定的索引号之间的字符。
语法:string.substring(from, to)
参数值:
- from: 必需。一个非负的整数,规定要提取的子串的第一个字符在 string Object 中的位置。
- to: 可选。一个非负的整数,比要提取的子串的最后一个字符在 string Object 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。
返回值:
注意点:
- substring() 方法返回的子串包括 开始 处的字符,但不包括 结束 处的字符。
示例:
var str="Hello world!";
str.substring(3,7) // 'lo w'
str.substring(3) // 'lo world!'
3.7 trim()
作用:去除字符串两边的空白。
空白符包括:空格、制表符 tab、换行符等其他空白符等。
语法:string.trim()
返回值:String。返回移除头尾空格的字符串。
注意点:
- trim() 方法不会改变原始字符串
- trim() 方法不适用于 null, undefined, Number 类型。
拓展:如果你的浏览器不支持 trim() 方法,你可以使用正则表达式来实现:
function myTrim(x) {
return x.replace(/^\s+|\s+$/gm,'');
}
function myFunction() {
var str = myTrim(" Runoob ");
alert(str);
}
示例:
var str = " Runoob ";
alert(str.trim()); // Runoob