String对象.md

JavaScript String对象

参考:

JavaScript字符串所有API全解密

String 对象属性

属性 描述
constructor 对创建该对象的函数的引用
length 字符串的长度
prototype 允许您向对象添加属性和方法

String 对象方法

方法 描述
charAt() 返回在指定位置的字符。
charCodeAt() 返回在指定的位置的字符的 Unicode 编码。
fromCharCode() 将 Unicode 编码转为字符。
toLowerCase() 把字符串转换为小写。
toUpperCase() 把字符串转换为大写。
trim() 去除字符串两边的空白
concat() 连接两个或更多字符串,并返回新的字符串。如果有多个空格,则视为一个
indexOf() 返回某个指定的字符串值在字符串中首次出现的位置。
lastIndexOf() 从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置。
search() 查找与正则表达式相匹配的值。
match() 查找找到一个或多个正则表达式的匹配。这个蛮有用
replace() 在字符串中查找匹配的子串, 并替换与正则表达式匹配的子串。
split() 把字符串分割为字符串数组。注意参数为负的情况
slice(start,end) 提取字符串的片断,并在新的字符串中返回被提取的部分。
substr(start,length) 从起始索引号提取字符串中指定数目的字符。
substring(from , to) 提取字符串中两个指定的索引号之间的字符。
valueOf() 返回某个字符串对象的原始值。

String HTML 包装方法

方法 描述
anchor() 创建 HTML 锚。
big() 用大号字体显示字符串。
blink() 显示闪动字符串。
bold() 使用粗体显示字符串。
fixed() 以打字机文本显示字符串。
fontcolor() 使用指定的颜色来显示字符串。
fontsize() 使用指定的尺寸来显示字符串。
italics() 使用斜体显示字符串。
link() 将字符串显示为链接。
small() 使用小字号来显示字符串。
strike() 用于显示加删除线的字符串。
sub() 把字符串显示为下标。
sup() 把字符串显示为上标。

charAt

charAt() 方法返回字符串中指定位置的字符。

语法:str.charAt(index) index 为字符串索引(取值从0至length-1),如果超出该范围,则返回空串。

charCodeAt

charCodeAt() 返回指定索引处字符的 Unicode 数值。

语法:str.charCodeAt(index)。index 为一个从0至length-1的整数。如果不是一个数值,则默认为 0,如果小于0或者大于字符串长度,则返回 NaN。

concat

concat() 方法将一个或多个字符串拼接在一起,组成新的字符串并返回。

语法:str.concat(string2, string3, …). concat 的性能表现不佳,强烈推荐使用赋值操作符(+或+=)代替 concat

indexOf / lastIndexOf

indexOf() 方法用于查找子字符串在字符串中首次出现的位置,没有则返回 -1。lastIndexOf 则从右往左查找,其它与前者一致

语法:str.indexOf(searchValue [, fromIndex=0]),str.lastIndexOf(searchValue [, fromIndex=0])

localeCompare

localeCompare() 方法用来比较字符串,如果指定字符串在原字符串的前面则返回负数,否则返回正数或0,其中0 表示两个字符串相同

match

match() 方法用于测试字符串是否支持指定正则表达式的规则,即使传入的是非正则表达式对象,它也会隐式地使用new RegExp(obj)将其转换为正则表达式对象。

语法:str.match(regexp).该方法返回包含匹配结果的数组,如果没有匹配项,则返回 null。

  • 若正则表达式没有 g 标志,则返回同 RegExp.exec(str) 相同的结果。而且返回的数组拥有一个额外的 input 属性,该属性包含原始字符串,另外该数组还拥有一个 index 属性,该属性表示匹配字符串在原字符串中索引(从0开始)。
  • 若正则表达式包含 g 标志,则该方法返回一个包含所有匹配结果的数组,没有匹配到则返回 null。

replace 使用最多的方法

该方法并不改变调用它的字符串本身,而只是返回替换后的字符串.

语法: str.replace( regexp | substr, newSubStr | function[, flags] )

简单概括,replace拥有两个参数,第一个是需要替换的字符串或者正则表达式;
第二个是新的字符串或者一个function,这样参数便有四种组合.

  • regexp: 一个 RegExp 对象. 该正则所匹配的内容会被第二个参数的返回值替换掉。
  • substr: 一个要被 newSubStr 替换的字符串.
  • newSubStr: 替换掉第一个参数在原字符串中的匹配部分. 该字符串中可以内插一些特殊的变量名.
  • function: 一个用来创建新子字符串的函数, 该函数的返回值将替换掉第一个参数匹配到的结果. 该函数的参数描述请参考 指定一个函数作为参数 小节.
  • flags: 注意:flags 参数在 v8 内核(Chrome and NodeJs)中不起作用. 方法中使用 flags 参数不是符合标准的并且不赞成这样做.

search() 方法用于测试字符串对象是否包含某个正则匹配,相当于正则表达式的 test 方法,且该方法比 match() 方法更快。如果匹配成功,search() 返回正则表达式在字符串中首次匹配项的索引,否则返回-1。

语法:str.search(regexp)

slice

slice() 方法提取字符串的一部分,并返回新的字符串。该方法有些类似 Array.prototype.slice 方法。

语法:str.slice(start, end)

split

split() 方法把原字符串分割成子字符串组成数组,并返回该数组

语法:str.split(separator, limit)

两个参数均是可选的,其中 separator 表示分隔符,它可以是字符串也可以是正则表达式。如果忽略 separator,则返回的数组包含一个由原字符串组成的元素。如果 separator 是一个空串,则 str 将会被分割成一个由原字符串中字符组成的数组。limit 表示从返回的数组中截取前 limit 个元素,从而限定返回的数组长度。

substr

substr() 方法返回字符串指定位置开始的指定数量的字符。

语法:str.substr(start[, length])

subString

substring() 方法返回字符串两个索引之间的子串。

语法:str.substring(indexA[, indexB])
indexA、indexB 表示字符串索引,其中 indexB 可选,如果省略,则表示返回从 indexA 到字符串末尾的子串。

  • 若 indexA == indexB,则返回一个空字符串;
  • 若 省略 indexB,则提取字符一直到字符串末尾;
  • 若 任一参数小于 0 或 NaN,则被当作 0;
  • 若 任一参数大于 length,则被当作 length。
  • 如果 indexA > indexB,则 substring 的执行效果就像是两个参数调换一般

toLocaleLowerCase、toLocaleUpperCase

toLocaleLowerCase() 方法返回调用该方法的字符串被转换成小写的值,转换规则根据本地化的大小写映射。而toLocaleUpperCase() 方法则是转换成大写的值。

toLowerCase 、toUpperCase

这两个方法分别表示将字符串转换为相应的小写,大写形式,并返回

trim

trim() 方法清除字符串首尾的空白并返回。

includes(ES6)

includes() 方法基于ECMAScript 2015(ES6)规范,它用来判断一个字符串是否属于另一个字符。如果是,则返回true,否则返回false。
语法:str.includes(subString [, position])

endsWith(ES6) 、startsWith(ES6)

endsWith() 方法基于ECMAScript 2015(ES6)规范,它基本与 contains() 功能相同,不同的是,它用来判断一个字符串是否是原字符串的结尾。若是则返回true,否则返回false。

小结

  • substr 和 substring,都是两个参数,作用基本相同,两者第一个参数含义相同,但用法不同,前者可为负数,后者值为负数或者非整数时将隐式转换为0。前者第二个参数表示截取字符串的长度,后者第二个参数表示截取字符串的下标;同时substring第一个参数大于第二个参数时,执行结果同位置调换后的结果。
  • search方法与indexOf方法作用基本一致,都是查询到了就返回子串第一次出现的下标,否则返回-1,唯一的区别就在于search默认会将子串转化为正则表达式形式,而indexOf不做此处理,也不能处理正则。

字符串对象遍历

参照各种遍历方法以及使用对象

字符串回文

1
str.split('').reverse().join('');