1. 字符方法

1.1 charAt()和charCodeAt()

主要有两个: charAt()charCodeAt()charAt()是通过索引查找字符串中的某个字符,而charCodeAt()其实就相当于在charAt()查找到字符之后再将其转换为相应的字符编码。例如:

  1. console.log(str.charAt(2)); // "l"
  2. console.log(str.charCodeAt(2)); // 108

其实查找字符还有一种更加简单直接的方法,就是与数组类似的方括号表示法,例如:

  1. console.log(str[2]); // "l"

1.2 转换成数组然后查询

  1. var arr = "hfuishafhdsha323hjdsk3326";
  2. // console.log(Number.isNaN(parseInt("a"))); //如过不是数字,返回true
  3. console.log([...arr].filter( item => !Number.isNaN(parseInt(item))).join(""));

2. 位置方法

2.1 indexOf & lastIndexOf

charAt()正好相反,位置方法是通过某个字符串来查找相应的位置索引,主要有两个: indexOf()lastIndexOf(),分别为正向查找和反向查找,例如:

  1. var str = 'Hello World';
  2. console.log(str.indexOf('l')); // 2
  3. console.log(str.lastIndexOf('l')); // 9

除此之外,这两个方法还能传入第二个参数,表示从字符串中的哪个位置开始查找,例如:

  1. var str = 'Hello World';
  2. console.log(str.indexOf('l',3)); // 3
  3. console.log(str.lastIndexOf('l',8)); // 3

可以看出,这两个方法的用法与数组操作中同名的两个方法的用法是一样的。

3. 模式匹配

3.1 match()

返回数组,语法:

stringObject.match(searchvalue) stringObject.match(regexp)

  1. <script>
  2. var str = "https://www.baidu.com/subject/12323e/dnf212";
  3. // 第一种
  4. var a = /\d+/g;
  5. console.log(str.match(a)); //return ["12323","212"]
  6. </script>

3.2 search()

返回下标,语法:

stringObject.search(searchvalue) stringObject.search(regexp)

    <script>
        var str = "https://www.baidu.com/subject/12323e/dnf212";
        // 第一种
        var a = /\d+/g;
        console.log(str.match(a)); //return 30
    </script>

详情请戳→简述test()、match()、replace()和search()的用法