本文小编为大家详细介绍“js如何判断字符串中是否包含某个字符串”,内容详细,步骤清晰,细节处理妥当,希望这篇“js如何判断字符串中是否包含某个字符串”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
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