JavaScript 系列之字符串(一)

444 阅读4分钟

这是我参与8月更文挑战的第23天,活动详情查看:8月更文挑战

image.png

一、查找判断

1.1 charAt

charAt() 方法从一个字符串中返回指定的字符。

str.charAt(index)

  • @params:一个介于 0 和字符串长度减1之间的整数。 (0~length-1),默认 0。
  • @return:字符
  • 是否改变原字符串:不改变
const str = 'hello';
console.log(str.charAt(2));  // 'e'
console.log(str.charAt(5));  // ''

1.2 charCodeAt

charCodeAt() 方法返回 0 到 65535 之间的整数,表示给定索引处的 UTF-16 代码单元。

str.charCodeAt(index)

  • @params:一个大于等于 0,小于字符串长度的整数。如果不是一个数值,则默认为 0。
  • @return:指定 index 处字符的 UTF-16 代码单元值的一个数字;如果 index 超出范围,charCodeAt() 返回 NaN。
  • 是否改变原字符串:不改变
const str = 'hello';
console.log(str.charCodeAt(2));  // 108
console.log(str.charCodeAt(5));  // NaN

1.3 indexOf

indexOf() 方法返回调用它的 String 对象中第一次出现的指定值的索引,从 fromIndex 处进行搜索。如果未找到该值,则返回 -1。

str.indexOf(searchValue [, fromIndex])

  • @params
    • searchValue:是要被查找的字符串值;
    • fromIndex:表示开始查找的位置。可以是任意整数,默认值为 0。
  • @return:查找的字符串 searchValue 的第一次出现的索引,如果没有找到,则返回 -1。
  • 是否改变原字符串:不改变
console.log('Blue Whale'.indexOf('Blue'))   // 返回 0
console.log('Blue Whale'.indexOf('Blute'))   // 返回 -1
console.log('Blue Whale'.indexOf('Whale', 0))   // 返回 5
console.log('Blue Whale'.indexOf('Whale', 5))   // 返回 5

1.4 lastIndexOf

lastIndexOf() 方法返回调用 String 对象的指定值最后一次出现的索引,在一个字符串中的指定位置 fromIndex处从后向前搜索。如果没找到这个特定值则返回-1 。

str.lastIndexOf(searchValue[, fromIndex])

  • @params
    • searchValue:是一个字符串,表示被查找的值。如果 searchValue 是空字符串,则返回 fromIndex。;
    • fromIndex:可选,待匹配字符串 searchValue 的开头一位字符从 str 的第 fromIndex 位开始向左回向查找。
  • @return:返回指定值最后一次出现的索引(该索引仍是以从左至右0开始记数的),如果没找到则返回 -1。
  • 是否改变原字符串:不改变
const str = 'Brave new world';
console.log(str.lastIndexOf('w'));

1.5 startsWith

startsWith() 方法用来判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 true 或 false。

str.startsWith(searchString[, position])

  • @params
    • searchString:表示要搜索的子字符串;
    • position:可选,表示在 str 中搜索 searchString 的开始位置,默认值为 0。
  • @return:如果在字符串的开头找到了给定的字符则返回 true;否则返回 false。
  • 是否改变原字符串:不改变
const str = 'Saturday night plans';
console.log(str.startsWith('Sat'));  // true
console.log(str.startsWith('Sat', 3));  // false

1.6 endsWith

endsWith() 方法用来判断当前字符串是否是以另外一个给定的子字符串“结尾”的,根据判断结果返回 true 或 false。

str.endsWith(searchString[, length])

  • @params
    • searchString:表示要搜索的子字符串;
    • length:可选,是 str 的长度。默认值为 str.length。
  • @return:如果传入的子字符串在搜索字符串的末尾则返回 true,否则将返回 false。
  • 是否改变原字符串:不改变
const str = 'To be, or not to be, that is the question.';

console.log(str.endsWith('question.'));  // true
console.log(str.endsWith('to be'));      // false
console.log(str.endsWith('to be', 19));  // true

1.7 includes

includes() 方法用于判断一个字符串是否包含在另一个字符串中,根据情况返回 true 或 false。

str.includes(searchString[, position])

  • @params
    • searchString:表示要在此字符串中搜索的字符串
    • position:可选,表示从当前字符串的哪个索引位置开始搜寻子字符串,默认值为 0。
  • @return:如果当前字符串包含被搜寻的字符串,就返回 true;否则返回 false。
  • 是否改变原字符串:不改变
const str = 'To be, or not to be, that is the question.';

console.log(str.includes('To be'));       // true
console.log(str.includes('question'));    // true
console.log(str.includes('nonexistent')); // false
console.log(str.includes('To be', 1));    // false
console.log(str.includes('TO BE'));       // false

1.8 localeCompare

localeCompare() 方法返回一个数字来指示一个参考字符串是否在排序顺序前面或之后或与给定字符串相同。

referenceStr.localeCompare(compareString[, locales[, options]])

  • @params
    • compareString:表示用来比较的字符串;
    • locales:可选,用来表示一种或多种语言或区域的一个符合 BCP 47 标准的字符串或一个字符串数组。
    • options:可选。
  • @return:如果引用字符存在于比较字符之前则为负数; 如果引用字符存在于比较字符之后则为正数; 相等的时候返回 0。
  • 是否改变原字符串:不改变
console.log('a'.localeCompare('c'));  // -1 
console.log('check'.localeCompare('against'));  // 1
console.log('a'.localeCompare('a'));  // 0