字符串

  1. 引号:单引号和双引号基本相同。反引号(模板字面量):允许字符串跨越多行并可以使用 ${…} 在字符串中嵌入表达式。
  2. 编码:JavaScript 中的字符串使用的是 UTF-16 编码。
  3. 字符串长度:str.length 是一个属性,不是一个函数
  4. 访问字符:获取字符时,使用 []
  5.         
            for (let char of "Hello") {
                alert(char); // H,e,l,l,o(char 变为 "H",然后是 "e",然后是 "l" 等)
            }
            
        

查找子字符串

  1. 在 JavaScript 中,字符串不可更改。改变字符是不可能的。通常的解决方法是创建一个新的字符串,并将其分配给 str 而不是以前的字符串。
  2. 改变大小写:toLowerCase() 和 toUpperCase()
  3. 查找子字符串:

获取子字符串

  1. 获取子字符串:JavaScript 中有三种获取字符串的方法:substring、substr 和 slice。

长字符串

  1. String:全局对象是一个用于字符串或一个字符序列的构造函数。使用 String 函数将其他值生成或转换成字符串。
  2. 长字符串:有时,你的代码可能含有很长的字符串。你可能想将这样的字符串写成多行,而不是让这一行无限延长或着被编辑器折叠。有两种方法可以做到这一点。

正则表达式

  1. str.match(regexp):方法在字符串 str 中找到匹配 regexp 的字符。
  2. 它有 3 种模式:
  3. str.matchAll(regexp):是 str.match “新改进的”变体。是一个最近添加到 JavaScript 的特性。 旧式浏览器可能需要 polyfills。它主要用来搜索所有组的所有匹配项。与 match 相比有 3 个区别:
  4. str.split(regexp|substr, limit):使用正则表达式(或子字符串)作为分隔符来分割字符串。
  5. str.search(regexp):方法返回第一个匹配项的位置,如果未找到,则返回 -1。重要限制:search 仅查找第一个匹配项。如果需要其他匹配项的位置,则应使用其他方法,例如用 str.matchAll(regexp) 查找所有位置。
  6. str.replace(str|regexp, str|func):这是用于搜索和替换的通用方法,是最有用的方法之一。它是搜索和替换字符串的瑞士军刀。不过有一个陷阱。当 replace 的第一个参数是字符串时,它仅替换第一个匹配项。要找到所有的字符,应使用带 g 标记的正则表达式 //g。
  7. regexp.exec(str):方法返回字符串 str 中的 regexp 匹配项。与以前的方法不同,它是在正则表达式而不是字符串上调用的。
  8. regexp.test(str):方法查找匹配项,然后返回 true/false 表示是否存在。
  9.         
            let regexp = /javascript/g;  // (新建 regexp:regexp.lastIndex=0)
            alert( regexp.test("javascript") ); // true(现在 regexp.lastIndex=10)
            alert( regexp.test("javascript") ); // false
            
        

    这正是因为在第二个测试中 regexp.lastIndex 不为零。如要解决这个问题,我们可以在每次搜索之前设置 regexp.lastIndex = 0。或者,不调用正则表达式的方法,而是使用字符串方法 str.match/search/...,这些方法不用 lastIndex。