首页 > 编程笔记 > JavaScript笔记
阅读:5
JavaScript String对象的用法(附带实例)
JavaScript 中的 String 对象用于处理字符串。字符串可以是使用双引号或单引号引起来的一组字符序列,例如 var str = 'hello',也可以使用 String 对象创建。
String 对象的语法格式如下:
示例如下:
1) charAt() 方法返回指定位置的字符,语法格式如下:
示例如下:
2) charCodeAt() 方法返回指定位置的字符的 Unicode 编码,语法格式如下:
示例如下:
3) indexOf() 方法返回某个指定的字符串值在字符串中首次出现的位置,语法格式如下:
示例如下:
【实例】查找字符串中某字符出现的次数。
程序在 Chrome 浏览器控制台中的运行结果为:
4) lastIndexOf() 方法返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。语法格式如下:
示例如下:
5) toUpperCase() 和 toLowerCase() 方法分别用于把英文字符串转换为大写和小写。示例如下:
6) trim() 方法从一个字符串的两端删除空白字符。示例如下:
7) substring() 方法用于提取字符串中介于两个指定下标之间的字符。语法格式如下:
示例如下:
8) slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。语法格式如下:
示例如下:
9) substr() 方法可提取字符串的某个部分,并返回提取部分的字符串。语法格式如下:
示例如下:
10) split() 方法把一个字符串分割成字符串数组。语法格式如下:
示例如下:
【实例】将字符串“i-love-you”转换成驼峰命名法“iLoveYou”
程序在 Chrome 浏览器控制台中的运行结果为:
String 对象的语法格式如下:
new String(s);参数 s 是要存储在 String 对象中的字符串的值。返回值是一个新创建的 String 对象。
示例如下:
var str = "坚定信心,勇毅前行"; // 字符串直接量 var str2 = new String("坚定信心,勇毅前行");提示,由于创建字符串对象需要对字符串直接量进行包装,从而有可能拖慢执行速度,因此本书推荐使用字符串直接量处理文本。
String常用属性和方法
1、字符串的常用属性
length 属性返回字符串中的字符数目。示例如下:var str = "绿水青山,'植'此青绿"; console.log(str.length); // 输出:11
2、字符串的常用方法
JavaScript 提供了丰富且功能强大的字符串方法,主要包括检索字符串、转换字符串、截取字符串、分割字符串等方法。字符串的常用方法如下表所示。字符串方法分类 | 方法名 |
---|---|
检索 | charAt()、charCodeAt()、indexOf()、lastIndexOf() |
转换 | toUpperCase()、toLowerCase()、trim() |
截取 | substring()、substr()、slice() |
分割 | split() |
1) charAt() 方法返回指定位置的字符,语法格式如下:
stringObject.charAt(index)
- 参数 index 代表字符在字符串中的下标;
- 方法返回指定位置的字符。字符串中第一个字符的下标是 0。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。
示例如下:
var str = '"两个奥运"精彩答卷彰显中国贡献'; console.log(str.charAt(3)); // 输出:奥
2) charCodeAt() 方法返回指定位置的字符的 Unicode 编码,语法格式如下:
stringObject.charCodeAt(index)
- 参数 index 代表字符在字符串中的下标;
- 方法返回指定位置的字符的 Unicode 编码。这个返回值是 0~65535 的整数,如果 index 是负数,或大于等于字符串的长度,则 charCodeAt() 返回 NaN。
示例如下:
var str = '"两个奥运"精彩答卷彰显中国贡献'; console.log(str.charCodeAt(3)); // 输出:22885
3) indexOf() 方法返回某个指定的字符串值在字符串中首次出现的位置,语法格式如下:
stringObject.indexOf(searchvalue,fromindex)
- 参数 searchvalue 代表需检索的字符串值;
- fromindex 是可选的整数参数,代表在字符串中开始检索的位置,它的合法取值是 0 到 stringObject.length-1;如省略该参数,则将从字符串的首字符开始检索。
- 方法返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则返回“-1”。
示例如下:
var str = '"两个奥运"精彩答卷彰显中国贡献'; console.log(str.indexOf('奥')); // 输出:3
【实例】查找字符串中某字符出现的次数。
var str = '兑现"两个奥运"同样精彩"的庄严承诺—北京冬奥组委总结冬残奥会'; var index = str.indexOf('奥'); var num = 0; while (index !== -1) { num++; index = str.indexOf('奥', index + 1); } console.log('"奥"出现的次数是:' + num);程序定义了字符串变量 str,使用 indexOf() 方法检索字符“奥”出现的次数。由于 indexOf() 方法只返回第一个匹配项,因此使用 while 循环遍历整个字符串,直到 indexOf() 方法返回“-1”结束循环。
程序在 Chrome 浏览器控制台中的运行结果为:
"奥"出现的次数是:3
4) lastIndexOf() 方法返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。语法格式如下:
stringObject.lastIndexOf(searchvalue,fromindex)
- 参数 searchvalue 代表需检索的字符串值。
- fromindex 是可选的整数参数,代表在字符串中开始检索的位置,它的合法取值是 0 到 stringObject.length-1;如省略该参数,则将从字符串的最后一个字符处开始检索。
- 方法返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则返回“-1”。
示例如下:
var str2 = '兑现"两个奥运、同样精彩"的庄严承诺—北京冬奥组委总结冬残奥会'; console.log(str2.lastIndexOf('奥')); // 输出:29
提示,indexOf() 和 lastIndexOf() 都对英文字母大小写敏感。
5) toUpperCase() 和 toLowerCase() 方法分别用于把英文字符串转换为大写和小写。示例如下:
var str = "Hello World!"; console.log(str.toUpperCase()); // 输出:HELLO WORLD! console.log(str.toLowerCase()); // 输出:hello world!
6) trim() 方法从一个字符串的两端删除空白字符。示例如下:
var str = ' Hello world! '; console.log(str.trim()); // 输出:'Hello world!'
7) substring() 方法用于提取字符串中介于两个指定下标之间的字符。语法格式如下:
stringObject.substring(start,stop)
- 参数 start 规定要提取的子串的第一个字符在 stringObject 中的位置。
- 参数 stop 是要提取的子串的最后一个字符在 stringObject 中的位置加 1;如果省略该参数,那么返回的子串会一直到字符串的结尾。
- 方法返回一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符。
示例如下:
var str = "奋进新征程 建功新时代"; console.log(str.substring(3)); // 输出:征程 建功新时代 console.log(str.substring(1, 4)); // 输出:奋进新
8) slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。语法格式如下:
stringObject.slice(start,end)
- 参数 start 是要抽取的片段的起始下标,如果是负数,则是从字符串的尾部开始算起的位置。例如“-1”指字符串的最后一个字符,“-2”指倒数第二个字符,以此类推。
- 参数 end 是要抽取的片段的结尾的下标,若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串;如果该参数是负数,那么是从字符串的尾部开始算起的位置。
- 方法返回一个新的字符串,包括字符串 stringObject 中从 start 开始(包括 start)到 end 结束(不包括 end)的所有字符。
示例如下:
var str = "奋进新征程 建功新时代"; console.log(str.slice(6)); // 输出:建功新时代 console.log(str.slice(6, 9)); // 输出:建功新 console.log(str.slice(-6, -1)); // 输出:建功新时代
9) substr() 方法可提取字符串的某个部分,并返回提取部分的字符串。语法格式如下:
stringObject.substr(start, length)
- 参数 start 是起始位置,不能省略。如果 start 大于长度,则 substr() 返回空字符串;如果 start 为负数,则 substr() 从字符串末尾开始计数。
- 参数 length 是要提取的字符数,如果省略,则提取字符串的其余部分。
- 方法返回包含提取部分的字符串。如果长度为 0 或负数,则返回空字符串。
示例如下:
var str = "奋进新征程 建功新时代"; console.log(str.substr(1, 4)); // 输出:进新征程 console.log(str.substr(2)); // 输出:新征程 建功新时代 console.log(str.substr(-5, -5)); // 输出:建功新时代
10) split() 方法把一个字符串分割成字符串数组。语法格式如下:
stringObject.split(separator,howmany)
- 参数 separator 代表从该参数指定的地方分割 stringObject。
- 参数 howmany 指定返回的数组的最大长度,如果设置了该参数,则返回的子串不会多于这个参数指定的数组;如果没有设置该参数,则整个字符串都会被分割,不考虑它的长度。
- 方法返回一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的子串不包括 separator 自身。如果把空字符串用作 separator,那么 stringObject 中的每个字符都会被分割。
示例如下:
var str = "How-are-you"; console.log(str.split("-")); // 输出:['How', 'are', 'you'] console.log(str.split("")); // 输出:['H', 'o', 'w', '-', 'a', 'r', 'e', '-', 'y', 'o', 'u'] console.log(str.split("-", 2)); // 输出:['How', 'are']
【实例】将字符串“i-love-you”转换成驼峰命名法“iLoveYou”
var str = "i-love-you"; var arr = str.split('-'); for (var i = 1; i < arr.length; i++) { arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substring(1); } console.log(arr.join(' '));程序定义了一个字符串变量 str,首先使用 split() 方法以“-”分割得到字符串数组 ['i','love','you'];然后将数组中的从第 2 个元素开始的单词首字母大写;最后调用数组方法 join(),将数组转换为字符串。
程序在 Chrome 浏览器控制台中的运行结果为:
iLoveYou