1. 前言
本文主要梳理一下字符串String对象方法和属性。
2. String对象属性
String对象属性 | 说明 | 示例 |
length | 字符串长度 | ‘abc’.length 得到3 |
__proto__ | String.prototype | <略> |
constructor | String | <.略> |
3. String原型方法
字符串方法暂未发现有副作用(即暂未会发现改变源字符串的方法)
String对象方法 | 说明 | 示例 |
字符串查找 | ||
String.prototype.indexOf(serarchVal, start) | 功能:指定的字符串值在字符串中首次出现位置(从前往后检索) 输入:string和number 输出:number | -1 |
'abbc'.indexof('b') 得到1 |
String.prototype.lastIndexOf(serarchVal, start) | 功能:指定的字符串值最后出现位置(从后向前检索) 输入:string和number 输出:number | -1 |
'abbc'.lastIndexOf('b') 得到2 |
String.prototype.search(serarchVal) | 功能:检索匹配searchVal的位置索引(此处修饰符g无效) 输入:RegExp | string 输出:number | -1 |
'abbc'.search(/b/) 得到1 |
String.prototype.includes(serarchVal, start) | 功能:判断字符串是否包含指定的子串 输入:string和number 输出:boolean(即true | false) |
'abbc'.includes('b',3) 得到false |
String.prototype.starsWith(serarchVal, start) | 功能:检测字符串是否以指定的子串开始 输入:string和number 输出:boolean(即true | false) |
'abbc'.starsWith('ab') 得到true |
String.prototype.endsWith(serarchVal, start) | 功能:检测字符串是否以指定的子串结束 输入:string和number 输出:boolean(即true | false) |
'abbc'.endsWith('bc') 得到true |
String.prototype.match(regexp) | 功能:根据regexp匹配子串,将所有匹配的字符串构成数组返回(有修饰符会返回所有匹配) 输入:RegExp | string 输出:Array |
'afbgc'.match(/[abc]+/g) 得到['a','b', 'c'] |
字符串替换子串、重复、修剪空白 | ||
String.prototype.replace(pattern, replacement) | 功能:用newVal替换匹配的子串(替换所以匹配的,正则表达式需要加修饰符g) 输入:RegExp | string, string | Function 输出:string |
let str = 'My dream and her dream' let newStr = str.replace(/dream/g, 'computer') 得到 'My computer and her computer' |
String.prototype.replaceAll() | <略> | <略> |
String.prototype.repeat(count) | 功能:将字符串复制指定次数 输入:number 输出:string |
<略> |
String.prototype.trim() | 功能:删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等 输入:无 输出:string |
<略> |
提取子串片段 |
||
String.prototype.slice(start, end) | 功能:提取start到end的子串,但不包含end位置的字符,start和end可以负,但仍是从前往后截取子串,若未指定end,则到末尾 输入:numer, number 输出:string |
let str = 'Hello World!'; let substr = str.slice(12, 2); 得到'He' |
String.prototype.substring(from, to) | 功能:提取from到to的子串,但不包含to位置的字符,若未指定to,则到末尾 输入:numer, number? 输出:string |
let str = 'Hello World!'; let substr = str.substring(1, 2); 得到'e' |
String.prototype.substr(start, length) | 功能:提取从start下标开始的指定数目的字符 输入:number, number 输出:string |
let str = 'Hello World!'; let substr = str.substr(1, 1); 得到'e' |
字符串大小写 | ||
String.prototype.toLowerCase() | 功能:将字符串转换为小写 输入:无 输出:string |
‘ABC’.toLowerCase() 得到‘abc’ |
String.prototype.toUpperCase() | 功能:将字符串转换为大写 输入:无 输出:string |
‘abc’.toUpperCase() 得到'ABC' |
String.prototype.toLocaleLowerCase() | 功能:根据本地主机语言环境将字符串转换为小写 输入:无 输出:string |
‘ABC’.toLocaleLowerCase() 得到'abc' |
String.prototype.toLocaleUpperCase() | 功能:根据本地主机语言环境将字符串转换为大写 输入:无 输出:string |
‘abc’.toLocaleUpperCase() 得到'ABC' |
Unicode编码值 | ||
String.prototype.charCodeAt(index) | 功能:获取字符串指定索引位置index字符的Unicode编码值 输入:number 输出:number | NaN Unicode编码值(0 - 65535),一个UTF-16码元(2字节) |
‘Aa’.charCodeAt(0) 得到65 |
String.fromCharCode(n1,n2,......,nx) | 功能:指定Unicode值(一个或多个UTF-16码元),返回字符串,字符串长度可能>1 输入:number 输出:string |
String.fromCharCode(65) 得到'A' |
String.prototype.codePointAt(index) | 功能:获取字符串指定索引位置index字符的Unicode编码值,无(0 - 65535)范围限制 输入:number 输出:number | undefined |
‘Aa’.codePointAt(0) 得到65 |
String.fromCodePoint(n1,n2,......,nx) | 功能:指定Unicode值,返回字符串,字符串长度可能>1 输入:number 输出:string |
String.fromCodePoint(65) 得到'A' |
通用方法(隐式转换会默认调用) | ||
String.prototype.valueOf() | 功能:返回 String 对象的原始值 输入:无 输出:string |
<略> |
String.prototype.toString() | 功能:返回一个表示 String 对象的值 输入:无 输出:string |
<略> |
基本不用的2个方法 | ||
String.prototype.concat() | 使用模版字符` ` 或+号拼接字符串 |
<略> |
String.prototype.charAt() | 使用[ ]替代,查找指定索引的字符 | <略> |
下一篇:【ECMAScript】Array对象属性和方法梳理和总结(第三篇)-CSDN博客
注:以上,如有不合理之处,还请帮忙指出,大家一起交流学习~