可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。
var str = "123"
console.log(str.indexOf("2") != -1); // true
var str = 'Hello world!';
console.log( str.indexOf('e') ); // 存在字符串中,返回位置 1
console.log( str.indexOf('d') ); // 存在字符串中,返回位置 10
console.log( str.indexOf('x') ); // 不存在字符串中,返回 -1
用于判断一个字符串是否包含另一个字符串,返回一个布尔值。如果包含则返回true,如果不包含则返回false。
var str="Hello world!";
if(str.includes("world")){
console.log("字符串中包含'world'");
}
else{
console.log("字符串中不包含'world'");
}
也用于检索字符串中是否包含指定的字符或者子串,如果包含则返回字符或者子串的位置,如果不包含则返回-1。与indexOf()方法不同的是,search()方法接受一个正则表达式作为参数。
var str = "123"
console.log(str.search("2") != -1); // true
可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
var str="Hello world!";
if(str.match("world")){
console.log("字符串中包含'world'");
}
else{
console.log("字符串中不包含‘world’");
}
var str = "123"
var reg = RegExp(/3/);
if(str.match(reg)){
//包含;
}
1.如果你的代码需要兼容 ES5 或更早的版本,那么可以使用 indexOf() 方法来判断数组是否包含某个元素。它的语法如下:array.indexOf(searchElement[, fromIndex]);其中searchElement 表示要查找的元素,fromIndex 表示搜索的起始位置,默认值为 0。indexOf() 方法返回一个数字,表示数组中第一次出现指定元素的位置。如果数组中不包含该元素,则返回 -1。
const fruits = ['apple', 'banana', 'orange'];
console.log(fruits.indexOf('apple') !== -1); // true
console.log(fruits.indexOf('banana') !== -1); // true
console.log(fruits.indexOf('pear') !== -1); // false
var arr = ['cat', 'dog', 'bat'];
console.log( arr.indexOf('cat') ) // 存在 返回位置 0
console.log( arr.indexOf('dog') ) // 存在 返回位置 1
console.log( arr.indexOf('tiger') ) // 不存在 返回 -1
在 ES6 中,为数组提供了一个 includes() 方法,用于判断数组是否包含某个元素。它的语法如下:array.includes(searchElement[, fromIndex])其中,searchElement 表示要查找的元素,fromIndex 表示搜索的起始位置,默认值为 0。includes() 方法返回一个布尔值,表示数组中是否包含指定的元素。
var arr = ['cat', 'dog', 'bat'];
console.log( arr.includes('cat' ) ) // 存在 返回 true
console.log( arr.includes('dog' ) ) // 存在 返回 true
console.log( arr.includes('tiger') ) // 不存在 返回 false
const fruits = ['apple', 'banana', 'orange'];
console.log(fruits.find(item => item === 'apple') !== undefined); // true
console.log(fruits.find(item => item === 'banana') !== undefined); // true
console.log(fruits.find(item => item === 'pear') !== undefined); // false
返回符合传入测试(函数)条件的数组元素索引,否则返回 -1.
var arr = ['cat', 'dog', 'bat'];
console.log( arr.findIndex(v => v == 'cat' ) ) // 存在 返回 0
console.log( arr.findIndex(v => v == 'dog' ) ) // 存在 返回 1
console.log( arr.findIndex(v => v == 'tiger') ) // 不存在 返回 -1
与 find() 方法类似,ES6 中还提供了一个 some() 方法,它可以用于判断数组中是否存在符合条件的元素。如果数组中存在符合条件的元素,则返回 true,否则返回 false。以下是使用 some() 方法判断数组是否包含某个元素的示例代码:
const fruits = ['apple', 'banana', 'orange'];
console.log(fruits.some(item => item === 'apple')); // true
console.log(fruits.some(item => item === 'banana')); // true
console.log(fruits.some(item => item === 'pear')); // false
var arr = [{name:'cat'}, {name:'dog'}, {name:'bat'}];
console.log( arr.find(v => v.name == 'dog' ) ) // 存在 返回 {name: "dog"}
console.log( arr.find(v => v.name == 'tiger') ) // 不存在 返回 undefined
var arr = [{name:'cat'}, {name:'dog'}, {name:'bat'}];
console.log( arr.findIndex(v => v.name == 'cat' ) ) // 存在 返回 0
console.log( arr.findIndex(v => v.name == 'dog' ) ) // 存在 返回 1
console.log( arr.findIndex(v => v.name == 'tiger') ) // 不存在 返回 -1
var arr = [{name:'cat'}, {name:'dog'}, {name:'bat'}];
console.log( arr.some(v => v.name == 'cat' ) ) // 存在 返回 true
console.log( arr.some(v => v.name == 'dog' ) ) // 存在 返回 true
console.log( arr.some(v => v.name == 'tiger') ) // 不存在 返回 false
// 循环判断arr与arr2是否有相同元素,相同的添加isdelete:false字段,不同添加isdelete:true
this.arr.map((item) => {
let bool = this.arr2.findIndex((it) => {
return item.name == it.name
})
if (bool !== -1) {
item.isdelete = false
} else {
item.isdelete = true
}
})
语法:声明一个RegExp有两种方式:
1)使用对象创建:var re=new RegExp(pattern,modifiers);
// var 变量名 = new RegExp(“正则表达式”,“匹配模式”);
// 这个正则表达式可以来检查一个字符串中是否含有a
var reg = new RegExp("ab", "i");
var str = "Abc";
var result = reg.test(str);
console.log(result); //true
2)使用字面量创建:var re =/pattern/modifiers;
// var 变量名 = /正则表达式/匹配模式;
// 这个正则表达式可以来检查一个字符串中是否含有a
var reg = /a/i;
var str = "Abc";
var result = reg.test(str);
console.log(result); // true
匹配模式:
i:忽略大小写
g:全局匹配模式
ig:忽略大小写且全局匹配模式
m:执行多行匹配
注意:可以为一个正则表达式设置多个匹配模式,且顺序无所谓
var str = "123"
var reg = RegExp(/3/);
console.log(reg.test(str) != -1); // true
// 这个正则表达式可以来检查一个字符串中是否含有a
var reg = /a|b|c/;
var str = "Abc";
var result = reg.test(str);
console.log(result);
// 这个正则表达式可以来检查一个字符串中是否含有字母
var reg = /[A-z]/;
var str = "Abc";
var result = reg.test(str);
console.log(result);
// Javascript 判断是移动端浏览器还是 PC 端浏览器:
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
document.write("移动")
} else {
document.write("PC")
}
// 验证用户手机号提交是否符合要求
var phone =18367898765;
var reg=/^[1][3,4,5,7,8][0-9]{9}$/;
if(!(reg.test(phone))){
alert('请输入正确的手机号码!')
}else{
alert('输入的手机号码正确!')
}
用于检索字符串中的正则表达式的匹配。返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
var str = "123"
var reg = RegExp(/3/);
if(reg.exec(str)){
//包含;
}
var str=" world! Hello";
//查找"Hello"
var patt=/Hello/g;
var result=patt.exec(str);
console.log("返回值: " + result); //Hello
//查找 "RUNOOB"
patt=/RUNOOB/g;
result=patt.exec(str);
console.log("
返回值: " + result);//null