js中判断一个字符串是否包含另一个字符串的方式
字符串的方法
方法一 indexOf() 推荐
var str = '123';
console.log(str.indexOf('2') !== -1); //true
indexOf()返回一个字符串在另一个字符串首次出现的位置,有的话返回索引,没有返回-1
方法二 match()
var str = '123';
var reg = new RegExp('/3/');
console.log(str.match(reg)); //true
match()可以在一个字符串内检索制定的值,或找到一个或多个正则表达式的匹配
方法三 search()
var str = '123';
console.log(str.search(’2‘) !== -1); //true
search()用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,如果没找到任何相匹配的子串,则返回-1
利用正则的方法
方法四 test()
var str = '123';
var reg = new RegExp(/3/);
console.log(reg.test(str)); //true
test()用于检索字符串中指定的值,返回true或false
方法五 exec()
var str = '123';
var reg = new RegExp(/3/);
console.log(reg.exec(str)); //true
exec()用于检索字符串中的正则表达式的匹配,返回匹配的结果,一个数组,如果没匹配到,返回null
es6新增的方式
includes()返回布尔值
表示是否找到了参数字符串
startsWith()返回布尔值
表示参数字符串是否出现在指定字符串的开头
endWith()返回布尔值
表示参数字符串是否出现在指定字符串的末尾
var str = 'hello world!';
console.log(str.includes('o')); //true
console.log(str.startsWith('hello')); //true
console.log(str.endWith('!')); //true
参数说明
这三个方法都支持第二个参数,表示开始搜索的位置
includes(),startsWith()表示从第几个开始;
endWith()表示前多少个字符
var str = 'hello world!';
console.log(str.includes('o',3)); //true
console.log(str.startsWith('hello',3)); //false
console.log(str.endWith('!',3)); //false
str.repeat(n)返回一个新串,表示将原字符串重复n次
var str = 'hello';
var cloneStr = str.repeat(3);
console.log(cloneStr); //hellohellohello