1.String对象概述
字符串是 JavaScript 的一种基本的数据类型。
String 对象的 length 属性声明了该字符串中的字符数。
String 类定义了大量操作字符串的方法,例如从字符串中提取字符或子串,或者检索字符或子串。
2.创建String对象
创建一个字符串,将一组字符串用引号包起来,将其赋值给一个字符串变量。
3.String属性,如下表5-10所示
表5-10 String属性
属性 | 描述 |
constructor | 返回创建字符串属性的函数 |
length | 返回字符串的长度 |
prototype | 允许您向对象添加属性和方法 |
例如我们将展示如何使用 length 属性来返回字符串中的字符数:
<script> var txt="Hello JavaScript!" document.write(txt.length) </script> |
4.String方法,如下表5-11所示
表5-11 String方法
方法 | 描述 |
charAt() | 返回指定索引位置的字符 |
charCodeAt() | 返回指定索引位置字符的 Unicode 值 |
concat() | 连接两个或多个字符串,返回连接后的字符串 |
fromCharCode() | 将 Unicode 转换为字符串 |
indexOf() | 返回字符串中检索指定字符第一次出现的位置 |
lastIndexOf() | 返回字符串中检索指定字符最后一次出现的位置 |
localeCompare() | 用本地特定的顺序来比较两个字符串 |
match() | 找到一个或多个正则表达式的匹配 |
replace() | 替换与正则表达式匹配的子串 |
search() | 检索与正则表达式相匹配的值 |
slice() | 提取字符串的片断,并在新的字符串中返回被提取的部分 |
split() | 把字符串分割为子字符串数组 |
substr() | 从起始索引号提取字符串中指定数目的字符 |
substring() | 提取字符串中两个指定的索引号之间的字符 |
toLocaleLowerCase() | 根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射 |
toLocaleUpperCase() | 根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射 |
toLowerCase() | 把字符串转换为小写 |
toString() | 返回字符串对象值 |
toUpperCase() | 把字符串转换为大写 |
trim() | 移除字符串首尾空白 |
valueOf() | 返回某个字符串对象的原始值 |
substring()是最常用到的字符串截取方法,它可以接收两个参数(参数不能为负值),分别是要截取的开始位置和结束位置,它将返回一个新的字符串,其内容是从start处到end-1处的所有字符。若结束参数(end)省略,则表示从start位置一直截取到最后。
var str = 'www.javascript.com' console.log(str.substring(0,3)) // www console.log(str.substring(0)) //www.javascript.com console.log(str.substring(-2)) //www.javascript.com (传负值则视为0) |
slice()方法与substring()方法非常类似,它传入的两个参数也分别对应着开始位置和结束位置。而区别在于,slice()中的参数可以为负值,如果参数是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符。
var str = 'www.javascript.com' console.log(str.slice(0, 3)) // www console.log(str.slice(-3, -1)) // co console.log(str.slice(1, -1)) // www.javascript.co console.log(str.slice(2, 1)) // '' (返回空字符串,start须小于end) console.log(str.slice(-3, 0)) // '' (返回空字符串,start须小于end) |
substr()方法可在字符串中抽取从start下标开始的指定数目的字符。其返回值为一个字符串,包含从stringObject的start(包括start所指的字符)处开始的length个字符。如果没有指定 length,那么返回的字符串包含从start到stringObject的结尾的字符。另外如果start为负数,则表示从字符串尾部开始算起。
var str = 'www.javascript.com' console.log(str.substr(1, 3)) // ww. console.log(str.substr(0)) // www.javascript.com console.log(str.substr(-3, 3)) // com console.log(str.substr(-1, 5)) // m (目标长度较大的话,以实际截取的长度为准) |
str.split([separator][, limit]),separator 指定用来分割字符串的字符(串)。separator 可以是一个字符串或正则表达式。如果忽略 separator,则返回整个字符串的数组形式。如果 separator 是一个空字符串,则 str 将会把原字符串中每个字符的数组形式返回。limit 一个整数,限定返回的分割片段数量。split 方法仍然分割每一个匹配的 separator,但是返回的数组只会截取最多 limit 个元素。
var str = 'www.javascript.com' str.split('.') // ["www", " javascript ", "com"] str.split('.', 1) // ["www"] str.split('.').join('') // wwwjavascriptcom |
indexOf()用来检索指定的字符串值在字符串中首次出现的位置。它可以接收两个参数,searchValue 表示要查找的子字符串,fromIndex 表示查找的开始位置,省略的话则从开始位置进行检索。
var str = 'www.javascript.com' console.log(str.indexOf('.')) // 3 console.log(str.indexOf('.', 1)) // 3 console.log(str.indexOf('.', 5)) // 14 console.log(str.indexOf('.', 12)) // -1 |
replace()方法用来进行字符串替换操作,它可以接收两个参数,前者为被替换的子字符串(可以是正则),后者为用来替换的文本。如果第一个参数传入的是子字符串或是没有进行全局匹配的正则表达式,那么replace()方法将只进行一次替换(即替换最前面的),返回经过一次替换后的结果字符串。
var str = 'www.javascript.com' console.log(str.replace('w', 'W')) // Www.javascript.com console.log(str.replace(/w/, 'W')) // Www.javascript.com |