js 判断字符串中是否包含某个字符串的实现代码

 更新时间:2023年03月27日 00:11:02   投稿:mdxy-dxy  
工作中经常会使用到判断一个字符串是否包含某一个字符串,因此总结一下几个方法,需要的朋友可以参考下

indexOf方法

根据国外大神的测试结果显示,indexOf在速度上可能是最快的,因此推荐大家在日常中还是经常使用indexOf这个方法。

ES5或者更老版本

String.prototype.indexOf方法用来返回一个字符串在另一个字符串中的位置,如果没找到那就返回 -1 。

代码如下:

var string = "foo",
    substring = "oo";
string.indexOf(substring) !== -1;//true

如果大量使用可以定义一个函数,方便调用

function instr(str, find) {
    if (str.indexOf(find) != -1) {
        return 1;
    } else {
        return 0;
    }
}

string.lastIndexOf()

和indexOf()的区别,从字符串的尾部开始查找

返回值:匹配成功的第一个字符的下标,未匹配则返回-1

用法:string.indexOf(searchValue, start)

let searchVal = 'yyds'
let searchResult = searchVal.lastIndexOf('y')
console.log(searchResult) // 1

ES6 includes 方法

返回值:Boolean

用法: string.includes(searchValue, start) 第二个参数从是指定下标开始查找

兼容补丁(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;
    }
  };
}

示例

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

当包含时返回true,不包含时返回false,代码实例如下:

var string = "foo";
        var substring1 = "oo";
        var substring2 = "oq";
        string.includes(substring1); //true
        string.includes(substring2); //false
 let searchVal = 'yyds'
 let searchResult = searchVal.includes('y', 1)
 console.log(searchResult) // true

string.search()

定义和用法

search() 方法将字符串与正则表达式匹配。

注释:如果搜索值为字符串,则转换为正则表达式。

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

如果未找到匹配项,则 search() 方法返回 -1。

提示:search() 方法区分大小写。

返回值:匹配成功的第一个字符的下标,未匹配则返回-1

用法:string.search(searchValue)

search方法与indexOf类似,用来返回一个字符串在另一个字符串中的位置,如果没找到那就返回-1,。

唯一需要注意的是,search方法的参数是一个正则表达式。

代码如下:

var string = "foo",
    expr = /oo/;
string.search(expr);// 返回1
 let searchVal = 'yyds'
 let searchResult = searchVal.search('y')
 console.log(searchResult) // 0  

不区分大小写的搜索

let text = "Mr. Blue has a blue house";
let position = text.search(/blue/i);

lodash includes方法

使用Javascript工具库lodash的includes方法,该方法返回一个布尔值,代码如下:

_.includes('foobar', 'ob'); 

// → true

RegExp正则表达式

使用正则表达式的match来判断是否包含,代码如下:

var string = "foo",
    expr = /oo/;  // no quotes here
expr.test(string);//true

Match方法

使用match的方法,该方法字符串不匹配的话就返回null,代码如下:

var string = "foo",
    expr = /oo/,
    expr2 = /oa/;
string.match(expr);//["oo", index: 1, input: "foo", groups: undefined]
string.match(expr2);//null

到此这篇关于js 判断字符串中是否包含某个字符串的实现代码的文章就介绍到这了,更多相关字符串中是否包含某个字符串内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 微信公众号开发之微信支付代码记录的实现

    微信公众号开发之微信支付代码记录的实现

    这篇文章主要介绍了微信公众号开发之微信支付代码记录的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • JavaScript onclick与addEventListener使用的区别介绍

    JavaScript onclick与addEventListener使用的区别介绍

    addEventListener()方法用于向指定元素添加事件句柄,使用 removeEventListener()方法来移除,onclick和addEventListener事件区别是:onclick事件会被覆盖,而addEventListener可以先后运行不会被覆盖,addEventListener可以监听多个事件
    2022-09-09
  • Maps Javascript

    Maps Javascript

    Maps Javascript...
    2007-01-01
  • 详解JS判断页面是在手机端还是在PC端打开的方法

    详解JS判断页面是在手机端还是在PC端打开的方法

    这篇文章主要介绍了JS判断页面是手机端还是在PC端打开的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • JavaScript中使用Substring删除字符串最后一个字符

    JavaScript中使用Substring删除字符串最后一个字符

    删除字符串最后一个字符的方法有很多,在本文将为大家介绍下js中的substring是如何做到的,需要的朋友可以参考下
    2013-11-11
  • 浅谈javascript alert和confirm的美化

    浅谈javascript alert和confirm的美化

    window对象的alert和confirm标准方法在不同浏览器的显示效果不太相同,有个相同点是都不是很美观。本文对此解决方法进行介绍:使用js和css分别仿照它们,提供另一套函数,使在不同浏览器的有着相同的体验效果。下面就跟小编一起来看下吧
    2016-12-12
  • HTML页面定时跳转方法解析(2种任选)

    HTML页面定时跳转方法解析(2种任选)

    本文主要对HTML页面定时跳转进行方法介绍:1、meta refresh 实现。2、JavaScript 实现。具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • JavaScript数据类型转换详解(推荐)

    JavaScript数据类型转换详解(推荐)

    众所周知JavaScript是一门弱类型(语言,即变量的类型是不确定的。所以下面这篇文章主要给大家介绍了关于JavaScript数据类型转换的相关资料,需要的朋友可以参考下
    2021-05-05
  • canvas压缩图片转换成base64格式输出文件流

    canvas压缩图片转换成base64格式输出文件流

    本文主要介绍了canvas压缩图片转换成base64格式输出文件流的方法,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • 前端url拼接参数格式&?用&和? =拼接方法实例

    前端url拼接参数格式&?用&和? =拼接方法实例

    在一些情况下需要直接往url上拼接请求参数,下面这篇文章主要给大家介绍了关于前端url拼接参数格式&?用&和? =拼接的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02

最新评论