String

66 阅读4分钟

[TOC]

JavaScript 字符串方法和属性

方法描述
length返回字符串中的字符数。
prototype允许您向对象添加属性和方法。
constructor返回字符串的构造函数。
indexOf()返回值在字符串中第一次出现的位置。
lastIndexOf()返回值在字符串中最后一次出现的位置。
includes()返回字符串是否包含指定值。
search()检索字符串中与正则表达式匹配的子串。
match()在字符串中搜索值或正则表达式,并返回匹配项。
toLowerCase()返回转换为小写字母的字符串。
toUpperCase()返回转换为大写字母的字符串。
toLocaleLowerCase()使用主机的语言环境返回转换为小写字母的字符串。
toLocaleUpperCase()使用主机的语言环境返回转换为大写字母的字符串。
charAt()返回指定位置处的字符。
charCodeAt()返回指定位置处字符编码。
codePointAt()返回字符串中索引(位置)处的 Unicode 值。
fromCharCode()将 Unicode 值作为字符返回。
concat()返回两个或多个连接的字符串。
endsWith()返回字符串是否以指定值结尾。
repeat()返回拥有多个字符串副本的新字符串。
replace()在字符串中搜索值或正则表达式,并返回替换值的字符串。
slice()提取字符串的一部分并返回新字符串。
split()将字符串拆分为子字符串数组。
startsWith()检查字符串是否以指定字符开头。
substr()从字符串中抽取子串,该方法是 substring() 的变种。
substring()从字符串中抽取子串。
toString()将字符串或字符串对象作为字符串返回。
trim()返回删除了空格的字符串。
trimEnd()返回从末尾删除空格的字符串。
trimStart()返回从开头删除空格的字符串。
valueOf()返回字符串或字符串对象的原始值。
localeCompare()使用基于本地的顺序来比较字符串。

length、indexOf()、lastIndexOf()、includes()

let str = "HELLO WORLD";
let l = str.length; // 11
let s = str.indexOf("L"); // 2
let s = str.lastIndexOf("L"); // 9

let str = "HELLO WORLD new str1";
let b = str.includes("WORLD"); // true
// 从下标 12 开始
let b = str.includes("new", 12); // true

验证开头结尾

startsWith()

  • 字符串是否以xxx开头
let str = "Hello world, welcome to the universe."
let s = str.startsWith("Hello")       //true 
let s = str.startsWith("welcome",13)  //true  

endsWith()

  • 字符串是否以xxx结尾
let str = "HELLO WORLD new str1";
let b = str.endsWith("WORLD"); // false
// 前 11 个字符是否以 "WORLD" 结尾
let b = str.endsWith("WORLD", 11); // true

search()、match()

let str = "HELLO WORLD WORLD new str1";
let sl = str.match(/WORLD/g); // [ WORLD,WORLD ]
let sl = str.match(/hhh/g); // null
let str = "HELLO WORLD WORLD new str1";
let i = str.search(/WORLD/g); // 6

search() 与 indexOf() 的区别

search() 不能采用起始位置参数。

indexOf() 方法无法搜索正则表达式。

search() 与 match() 的区别

search() 方法返回第一个匹配的位置。

match() 方法返回匹配数组。

字母 转 大小写

  • toLowerCase()
  • toUpperCase()
  • toLocaleLowerCase()
  • toLocaleUpperCase()
let str = "HELLO WORLD!";
let s = str.toLowerCase(); // hello world!
let s = str.toUpperCase(); // HELLO WORLD!
let s = str.toLocaleLowerCase(); // hello world!
let s = str.toLocaleUpperCase(); // HELLO WORLD!

替换

replace()

  • 替换字符串
let str = "Hello World!"
let s = str.replace("World", "red"); // Hello red!
let s = str.replace(/o/gi, "red");   // Hellred Wredrld!

截取字符串

slice(start, end)

// [ 包含 start 下标, 不包含 end 下标 )
let str = "Hello World!"
let s = str.slice(3,5)    // lo
let s = str.slice(3)      // lo world!
let s = str.slice(-5,-2)  // orl

substr(start, end)

let str = "Hello World!"
// [ 开始 start 下标, 提取 num 个字符 ]
let s = str.substr(1, 4)  // ello
let s = str.substr(1)     // ello world!

substring(start, end)

let str = "Hello World!"
// [ 包含 start 下标, 不包含 end 下标 ]

let s = str.substring(1, 4)  // ell 

// 如果 start 大于 end,则交换参数
let s = str.substring(4, 1)  // ell

// 从位置 1 开始
let s = str.substring(1)     // ello world!

// 如果 "start" 小于 0,它将从索引 0 开始
let s = str.substring(-3)    // Hello world!

拼接、复制

concat()

  • 拼接字符串
let str = "HELLO WORLD";
let s = str.concat(" new", " str1"); // HELLO WORLD new str1

repeat()

  • 复制字符串
let str = "Hello World!"
let s = str.repeat(2)  // Hello World!Hello World!
let s = str.repeat(3)  // Hello World!Hello World!Hello World!

转数组

split()

以某字符将字符串分割成数组

let str = "Hello World!"
let s = str.split(" ")  // ["Hello","World!"]

let str = "Hello-new-World!"
let s = str.split("-")  // ["Hello","new","World!"]

去空

  • trim()
  • trimEnd()
  • trimStart()
let str = "     Hello World!     "
let s = "^" + str.trim() +  "$"  // ^Hello World!$
let s = "^" + str.trim() +  "$"  // ^     Hello World!$
let s = "^" + str.trim() +  "$"  // ^Hello World!     $

字符码

  • charAt()
  • charCodeAt()
  • codePointAt()
  • fromCharCode()
let str = "HELLO WORLD";
let s = str.charAt(0); // H
let s = str.charCodeAt(0); // 72
let s = str.codePointAt(0); // 72
let s = str.fromCharCode(72); // H

toString()

let num = 123
let s = num.toString()  // "123" 

valueOf()

let str = "Hello World!"
let s = str.valueOf()  // "Hello World!"

localeCompare()

let str1 = "str";
let str2 = "str";
let n = str1.localeCompare(str2); // 0 表示完全相等

let str1 = "ab";
let str2 = "cd";
let n = str1.localeCompare(str2); // -1 如果str1在str2之前排序

let str1 = "cd";
let str2 = "ab";
let n = str1.localeCompare(str2); // 1 如果str1在str2之后排序