伊始
大家应该都遇到过一些查找字符串、数组中是否包含某个元素的情况,下面我来给大家介绍几个函数,方便大家查找这些值,增加摸鱼时间
字符串
startsWith() 方法用于检测字符串是否以指定的前缀开始。
返回一个boolean值,以某个字符串开头返回true,否则返回一个false
var str = 'abcd'
str.startsWith('a'); // true
str.startsWith('b'); // false
search
参数
-
regexp一个正则表达式(regular expression)对象
如果传入一个非正则表达式对象
regexp,则会使用new RegExp(regexp)隐式地将其转换为正则表达式对象。
返回值:如果匹配成功,则 search() 返回正则表达式在字符串中首次匹配项的索引;否则,返回 -1。
注意: search 函数区分大小写
var str = 'aAb';
str.search('b'); // 2
match
参数:一个正则表达式对象。如果传入一个非正则表达式对象,则会隐式地使用 new RegExp(obj) 将其转换为一个 RegExp 。如果你没有给出任何参数并直接使用match() 方法 ,你将会得到一 个包含空字符串的 Array :[""] 。
返回值:
- 如果使用g标志,则将返回与完整正则表达式匹配的所有结果,但不会返回捕获组。
- 如果未使用g标志,则仅返回第一个完整匹配及其相关的捕获组(
Array)。 在这种情况下,返回的项目将具有如下所述的其他属性。
附加属性
如上所述,匹配的结果包含如下所述的附加特性。
groups: 一个捕获组数组 或undefined(如果没有定义命名捕获组)。index: 匹配的结果的开始位置input: 搜索的字符串.
var str = 'aAb';
str.match('a')
['a', index: 0, input: 'aAb', groups: undefined]0: "a"groups: undefinedindex: 0input: "aAb"length: 1[[Prototype]]: Array(0)
str.match(/a/g)
['a']0: "a"length: 1[[Prototype]]: Array(0)
str.match(/[a-z]/g)
(2) ['a', 'b']
如果传入的是一个正则,那么就只会返回一个匹配值组成的数组,如果传入的是一个字符串,那么就会有附加项。 [MDN match链接](String.prototype.match() - JavaScript | MDN (mozilla.org))
字符串和数组
includes
字符串中是否包含某段字符,包含返回true,不包含返回false。
注意: 该方法区分大小写。
var str = '123456789';
str.includes('23'); // true
str.includes('10'); // false
str.includes('1'); // true
str.includes('13'); // false
includes也可以用于数组,查找数组中是否包含某个值,有返回true没有返回false
indexOf
字符串或数组中有某个值返回第一个值的索引,如果没有返回 -1
注意:只能返回第一个符合条件的值的索引
var str = '123456789';
str.indexOf('345'); // 返回2
var arrs=[1,2,3,4,5,6]
arrs.indexOf(2); // 1
数组
find()
find 的参数是一个函数,仅作用于数组
遍历一个是数组,找到参数函数中的断言并返回其值,如果没有符合条件的值,那么返回undefined。
注意: find函数只能返回第一个符合条件的值。
const arr = [1,2,3,4,5,6,7,8,9];
const result = arr.find(item => {
return item % 2 === 0;
})
console.log(result); // 2
findIndex()
findIndex 的用法与 find 一致,仅作用于数组。
遍历一个数组,找打参数函数中的的断言,并返回该值的索引,这是与 find 不同的地方,如果没有找到这个值就返回 -1。
注意: findIndex函数只能返回第一个符合条件的值的索引。
const arr = [1,2,3,4,3,5,6,7,8,9];
const result = arr.findIndex(item => {
return item === 3;
})
console.log(result);
当然在数组中有很多的方法去查找某个值是否存在,如:filter、some、every等;还有jQuery中的inArray方法也可有查找数组中的某个值。