非常教程

JavaScript参考手册

字符串 | String

string.includes

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

语法

str.includes(searchString[, position])

参数

searchString要在此字符串中搜索的字符串。

position可选。从当前字符串的哪个索引位置开始搜寻子字符串;默认值为0。

返回值

如果当前字符串包含被搜寻的字符串,就返回true;否则,返回false。

描述

这个方法可以帮你判断一个字符串是否包含另外一个字符串。

区分大小写

includes() 方法是区分大小写的。例如,下面的表达式会返回 false

'Blue Whale'.includes('blue'); // returns false

示例

使用includes()

var 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

Polyfill

这个方法已经被加入到 ECMAScript 6 标准中,但未必在所有的 JavaScript 实现中都可以使用。然而,你可以轻松地polyfill这个方法:

if (!String.prototype.includes) {
  String.prototype.includes = function(search, start) {
    'use strict';
    if (typeof start !== 'number') {
      start = 0;
    }
    
    if (start + search.length > this.length) {
      return false;
    } else {
      return this.indexOf(search, start) !== -1;
    }
  };
}

规范

Specification

Status

Comment

ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'String.prototype.includes' in that specification.

Standard

Initial definition.

ECMAScript Latest Draft (ECMA-262)The definition of 'String.prototype.includes' in that specification.

Living Standard

浏览器兼容性

Feature

Chrome

Edge

Firefox

Internet Explorer

Opera

Safari

Basic Support

41

(Yes)

18 — 48 (as contains) 40

No

(Yes)

9

Feature

Android

Chrome for Android

Edge mobile

Firefox for Android

IE mobile

Opera Android

iOS Safari

Basic Support

(Yes)

(Yes)

(Yes)

18 — 48 (as contains) 40

No

(Yes)

9

JavaScript

JavaScript 是一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的解释型语言。它已经由ECMA(欧洲电脑制造商协会)通过 ECMAScript 实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器( Chrome、IE、FireFox、Safari、Opera )支持。JavaScript 是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持 I/O,比如网络