JavaScript中如何检查一个字符串是否包含另一个子字符串

0 投票
最新提问 1月 1 用户: 高手 (380 分)
通常情况下,我一般会用String.contains()方法,但好像能实现的方法不止一个,有没有更合理、更快的方法?

1个回答

0 投票
最新回答 1月 5 用户: 匿名

有以下六种方法,公共部分代码如下:

var str = "nasd.n.kasdkskdnfkjsdfkjhsdfiuhsdfiusadfiuhsdfiöhsdifhsäodfjiosdfisdfsdfnosdfiosdf89sdfs98pdfzp98sdf98psfzp8sfzp8sfzp89szfp8snasd.n.kasdkskdnfkjsdfkjhsdfiuhsdfiusadfiuhsdfiöhsdifhsäodfjiosdfisdfsdfnosdfiosdf89sdfs98pdfzp98sdf98psfzp8sfzp8sfzp89szfp8snasd.n.kasdkskdnfkjsdfkjhsdfiuhsdfiusadfiuhsdfiöhsdifhsäodfjiosdfisdfsdfnosdfiosdf89sdfs98pdfzp98sdf98psfzp8sfzp8sfzp89szfp8snasd.hellon.kasdkskdnfkjsdfkjhsdfiuhsdfiusadfiuhsdfiöhsdifhsäodfjiosdfisdfsdfnosdfiosdf89sdfs98pdfzp98sdf98psfzp8sfzp8sfzp89szfp8s";
  var needle = "hello";
  var needleRegex = /hello/;

1. indexOf

String.prototype.indexOf在另一个字符串中返回的字符串的位置。如果未找到,它将返回-1:

var test = str.indexOf(needle);

2. regex

var test = needleRegex.test(str);

3. match

var test = str.match(needleRegex);

4. includes (ES6)

var test = str.includes(needle);

5. search

var test = str.search(needleRegex);

6. lodash includes

var test = _.includes(str, needle);

性能测试显示indexOf()!==-1方法最快。

欢迎来到编程助手,编程方面有什么不懂的问题可以尽管在这里提问,你将会收到热心爱好者的回答。
...