先上一道小菜,如果通过var a='str'赋值,console.log时是看不到string类的一些方法的。如果通过new赋值,是可以看到的
查找字母
一般这种查找相关的,第二个传入参数都是起始匹配位置。
indexOf : 方法返回调用 String 对象中第一次出现的指定值的索引,开始在 fromIndex进行搜索,区分大小写。
指定值的第一次出现的索引; 如果没有找到 -1。
str.indexOf(searchValue[, fromIndex])
表示调用该方法的字符串中开始查找的位置。可以是任意整数。默认值为 0。如果 fromIndex < 0 则查找整个字符串(如同传进了 0)。如果 fromIndex >= str.length,则该方法返回 -1。当被查找的字符串是一个空字符串,fromIndex <= 0时返回0,0 < fromIndex <= str.length时返回fromIndex,fromIndex > str.length时返回str.length。
lastIndexOf : 方法返回指定值在调用该方法的字符串中最后出现的位置,如果没找到则返回 -1。从该字符串的后面向前查找,从 fromIndex 处开始。
str.lastIndexOf(searchValue[, fromIndex])
charAt : 方法从一个字符串中返回指定的字符。字符串中的字符从左向右索引,第一个字符的索引值为 0,最后一个字符(假设该字符位于字符串 stringName 中)的索引值为 stringName.length - 1。 如果指定的 index 值超出了该范围,则返回一个空字符串。
str.charAt(index)
一个介于0 和字符串长度减1之间的整数。 (0~length-1) 如果没有提供索引,charAt() 将使用0。
charCodeAt : 方法返回0到65535之间的整数,表示给定索引处的UTF-16代码单元 (在 Unicode 编码单元表示一个单一的 UTF-16 编码单元的情况下,UTF-16 编码单元匹配 Unicode 编码单元。但在——例如 Unicode 编码单元 > 0x10000 的这种——不能被一个 UTF-16 编码单元单独表示的情况下,只能匹配 Unicode 代理对的第一个编码单元) 。如果你想要整个代码点的值,使用 codePointAt()。
str.charCodeAt(index)
返回值是一表示给定索引处(String中index索引处)字符的 UTF-16 代码单元值的数字;如果索引超出范围,则返回 NaN。
codePointAt : 方法返回 一个 Unicode 编码点值的非负整数。
str.codePointAt(pos)
返回值是在字符串中的给定索引的编码单元体现的数字,如果在索引处没找到元素则返回 undefined 。
includes : 方法用于判断一个字符串是否包含在另一个字符串中,根据情况返回 true 或 false。
str.includes(searchString[, position])
position可选。从当前字符串的哪个索引位置开始搜寻子字符串,默认值为0。
match : 当一个字符串与一个正则表达式匹配时, match()方法检索匹配项。
如果正则表达式不包含 g 标志,则 str.match() 会返回和 RegExp.exec() 相同的结果。而且返回的 Array 拥有一个额外的 input 属性,该属性包含被解析的原始字符串。另外,还拥有一个 index 属性,该属性表示匹配结果在原字符串中的索引(以0开始)。
如果正则表达式包含 g 标志,则该方法返回一个 Array ,它包含所有匹配的子字符串而不是匹配对象。捕获组不会被返回(即不返回index属性和input属性)。如果没有匹配到,则返回 null 。
search :方法执行正则表达式和 String对象之间的一个搜索匹配。
如果匹配成功,则 search() 返回正则表达式在字符串中首次匹配项的索引。否则,返回 -1。
当你想要知道字符串中是否存在某个模式(pattern)时可使用 search,类似于正则表达式的 test 方法。当要了解更多匹配信息时,可使用 match(会更慢),该方法类似于正则表达式的 exec 方法。
startsWith : 方法用来判断当前字符串是否是以另外一个给定的子字符串“开头”的,根据判断结果返回 true 或 false。
endsWith : 方法用来判断当前字符串是否是以另外一个给定的子字符串“结尾”的,根据判断结果返回 true 或 false。
元素操作
trim : ie9+,方法会从一个字符串的两端删除空白字符。在这个上下文中的空白字符是所有的空白字符 (space, tab, no-break space 等) 以及所有行终止符字符(如 LF,CR)。trim相关的API都不会修改字符串本身。
trimLeft : 方法从一个字符串的左端移除空白字符
trimRight : 方法从一个字符串的右端移除空白字符。
replace : 方法返回一个由替换值替换一些或所有匹配的模式后的新字符串。模式可以是一个字符串或者一个正则表达式, 替换值可以是一个字符串或者一个每次匹配都要调用的函数。
str.replace(regexp|substr, newSubStr|function)
返回一个部分或全部匹配由替代模式所取代的新的字符串。
repeat : ie不支持,构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。
"abc".repeat(-1) // RangeError: repeat count must be positive and less than inifinity,可以传个正小数
concat : 方法将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回。 concat 方法并不影响原字符串。
str.concat(string2, string3[, ..., stringN])
赋值操作符(+, +=)代替 concat 性能上更优
padStart : ie15+,方法用另一个字符串填充当前字符串(重复,如果需要的话),以便产生的字符串达到给定的长度。填充从当前字符串的开始(左侧)应用的。返回在原字符串开头填充指定的填充字符串直到目标长度所形成的新字符串。
str.padStart(targetLength [, padString])
targetLength,当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回当前字符串本身。
padString,填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧的部分,其他部分会被截断。此参数的缺省值为 " "(U+0020)。
'abc'.padStart(10); // " abc"
'abc'.padStart(10, "foo"); // "foofoofabc"
'abc'.padStart(6,"123465"); // "123abc"
'abc'.padStart(1); // "abc"
padEnd : ie15+,方法会用一个字符串填充当前字符串(如果需要的话则重复填充),返回填充后达到指定长度的字符串。从当前字符串的末尾(右侧)开始填充。
str.padEnd(targetLength [, padString])
'abc'.padEnd(10); // "abc "
'abc'.padEnd(10, "foo"); // "abcfoofoof"
'abc'.padEnd(6, "123456"); // "abc123"
'abc'.padEnd(1); // "abc"
split : 方法使用指定的分隔符字符串将一个String对象分割成字符串数组,以将字符串分隔为子字符串,以确定每个拆分的位置。返回源字符串以分隔符出现位置分隔而成的一个 Array。
str.split([separator[, limit]])
当字符串为空时,split()返回一个包含一个空字符串的数组,而不是一个空数组,如果字符串和分隔符都是空字符串,则返回一个空数组。
如果 separator 包含捕获括号(capturing parentheses),则其匹配结果将会包含在返回的数组中。
var myString = "Hello 1 word. Sentence number 2.";
var splits = myString.split(/(\d)/);
console.log(splits);
toLowerCase : toLowerCase 会将调用该方法的字符串值转为小写形式,并返回。toLowerCase 不会影响字符串本身的值。
toUpperCase : 将调用该方法的字符串值转换为大写形式,并返回。toUpperCase 方法不影响字符串本身的值。
toLocaleLowerCase : 方法根据任何特定于语言环境的案例映射,返回调用字符串值转换为小写的值。
str.toLocaleLowerCase()
在大多数情况下,该方法产生的结果和调用toLowerCase()的结果相同,但是在某些本地环境中,比如土耳其语,它的大小写映射并不遵循在Unicode中的默认的大小写映射,因此会有一个不同的结果。
toLocaleUpperCase : 使用本地化(locale-specific)的大小写映射规则将输入的字符串转化成大写形式并返回结果字符串。返回一个新的字符串,即根据本地化的大小写映射规则将输入的字符串转化成大写形式的结果。
toString : 方法返回指定对象的字符串形式。String 对象覆盖了Object 对象的 toString 方法;并没有继承 Object.toString()。对于 String 对象,toString 方法返回该对象的字符串形式,和 String.prototype.valueOf() 方法返回值一样。
var x = new String("Hello world");
alert(x.toString()) // 输出 "Hello world"
substr : 方法返回一个字符串中从指定位置开始到指定字符数的字符。
如果 start 为正值,且大于或等于字符串的长度,则 substr 返回一个空字符串。
如果 start 为负值,则 substr 把它作为从字符串末尾开始的一个字符索引。如果 start 为负值且 abs(start) 大于字符串的长度,则 substr 使用 0 作为开始提取的索引。
substring : 方法返回一个字符串在开始索引到结束索引之间的一个子集, 或从开始索引直到字符串的末尾的一个子集。返回包含给定字符串的指定部分的新字符串
- 如果 indexStart 等于 indexEnd,substring 返回一个空字符串。
- 如果省略 indexEnd,substring 提取字符一直到字符串末尾。
- 如果任一参数小于 0 或为 NaN,则被当作 0。
- 如果任一参数大于 stringName.length,则被当作 stringName.length。
- 如果 indexStart 大于 indexEnd,则 substring 的执行效果就像两个参数调换了一样。
获取值
valueOf : 方法返回一个String对象的原始值。String 对象的 valueOf 方法返回一个String对象的原始值。该值等同于String.prototype.toString()。
toString : 方法返回指定对象的字符串形式。
normalize : 方法会按照指定的一种 Unicode 正规形式将当前字符串正规化。
str.normalize([form]);
localeCompare : 方法返回一个数字来指示一个参考字符串是否在排序顺序前面或之后或与给定字符串相同。
referenceStr.localeCompare(compareString[, locales[, options]])
返回一个数字表示是否 引用字符串 在排序中位于 比较字符串 的前面,后面,或者二者相同。
- 当 引用字符串 在 比较字符串 前面时返回 -1
- 当 引用字符串 在 比较字符串 后面时返回 1
- 相同位置时返回 0
String的一些方法
String.fromCharCode : 方法返回使用指定的Unicode值序列创建的字符串。
String.fromCharCode(num1, ..., numN)
String.fromCharCode(65,66,67) // ABC
String.fromCodePoint : 静态方法返回使用指定的代码点序列创建的字符串。
String.fromCodePoint(num1[, ...[, numN]])
String.raw : 是一个模板字符串的标签函数,它的作用类似于 Python 中的字符串前缀 r 和 C# 中的字符串前缀 @,是用来获取一个模板字符串的原始字面量值的。
String.raw(callSite, ...substitutions)
String.raw`templateString`
@@iterator : 不支持ie,方法返回一个新的Iterator对象,它遍历字符串的代码点,返回每一个代码点的字符串值。
var string = 'A\uD835\uDC68';
var strIter = string[Symbol.iterator]();
console.log(strIter.next().value); // "A"
console.log(strIter.next().value); // "\uD835\uDC68"