配合这里的 方法 可以查询数组某一项是否符合要求
方法一:
str.indexOf()
语法: str.indexOf(item, start)
参数:
item: 查询的字符串值
start: 可选的整数参数,规定在字符串中开始的位置, 他的合法值是 0 到 str.length-1 , 如果省略此参数,则会从字符串的首字符开始查询
var list = [ { id: 1, str: '张三' }, { id: 2, str: '李四' }, { id: 3, str: '王五' }, { id: 4, str: '赵六' }, { id: 5, str: '沈七' }, { id: 6, str: '账单' }, { id: 7, str: '张挨打的' }, { id: 8, str: '张三' }, { id: 9, str: '张三' }, { id: 10, str: '张三' }, ] var a = list.filter(value => { return value.str.indexOf('四') !== -1 }) console.log(a); // { id: 2, str: '李四' },
注意: indexOf对大小写敏感
如果查询的字符串值没有出现, 则会返回 -1
方法二:
str.search()方法
语法: str.search(要查询的字符串)
参数: 该参数可以是需要在 stringObject 中检索的子串,也可以是需要检索的 RegExp(正则表达式) 对象。
注意: 如果没有找到任何匹配的子串,则返回 -1
var list = [ { id: 1, str: '张三' }, { id: 2, str: '李四' }, { id: 3, str: '王五' }, { id: 4, str: '赵六' }, { id: 5, str: '沈七' }, { id: 6, str: '账单' }, { id: 7, str: '张挨打的' }, { id: 8, str: '张三' }, { id: 9, str: '张三' }, { id: 10, str: '张三' }, ] var a = list.filter(value => { return value.str.search('四') !== -1 }) console.log(a); // { id: 2, str: '李四' },
方法三:
str.match()方法
语法: str.match('value')
str.match(regexp)
参数:
value:要查询的字符串
regexp: 要匹配的正则表达式
var str="1 plus 2 equal 3" document.write(str.match(/\d+/g)) var str="Hello world!" document.write(str.match("world"))
charAr() 返回在指定位置的字符,索引范围为从 0 到 length() - 1。
var str="abcdefghijklmn" var str2 = str.charAt(2); var str3 = str.charAt(8); console.log(str2); //c console.log(str3); //i
conca();连接字符串
var str1 = "hellow"; var str2 = 'world'; console.log(str2.concat(str1)); // 结果 worldhellow
match();在字符串内检索指定的值或找到一个或多个正则表达式的匹配,返回的是值而不是值的位置。
var str1 = "hellow"; var str2 = str1.match('ell'); //检索字符串,返回的是字符 var str3 = str1.match('lll');//没有指定的字符,返回的是null console.log(str2); console.log(str3);
.replace();替换匹配的字符串
var str1 = "nihaoma"; var str2 = "henhao"; var str3 = str1.replace(str1.match('hao'),str2.match('hen')); //找到str1的hao,找到str2的lixi,用str2替换掉str1 console.log(str3); //nihenma
search();检索与字符串匹配的子串,返回的是地址
var str1 = "lily nihaoya zaiganma"; var str2 = "nihaoya"; var str3 = "wobuzai"; var num1 = str1.search(str2);//返回的是第一个字符所在的位置 var num2 = str1.search(str3); //未检测到返回-1 console.log(num1); //9 console.log(num2); //-1
slice();提取字符串片段,并在新的字符串中返回被提取的部分
var str1 = 'nihaoya wobuhaoya' console.log(str1.slice(4,9)); //4位置开始,到9的前一个位置结束 console.log(str1.slice(2,14));//start位置开始,end前一个位置结束 console.log(str1);//原字符串不变 console.log(str1.slice(-1,0)); //返回的是空字符串 console.log(str1.slice(30,100)); //长度超过字符串的长度,返回空字符串 console.log(str1.slice(-1,10));//返回的是空字符串
substr();从起始索引号提取字符串中指定书目的字符
var str = "jin tian shi 2019 nian zui hou yi tian" var str3 = str.substr(3,19);//字符串中空格不占位置,从3开始,到19结束 console.log(str3); // tian shi 2019 nian
subString();提取字符串中两个指定索引号之间的字符
var str = "jin tian shi 2019 nian zui hou yi tian" var str3 = str.substring(3,19);//字符串中空格占位置,从3开始,到18结束 var str4 = str.substr(3,19);//空格不占位。从3开始到19结束 console.log(str4); // tian shi 2019 nian console.log('-------------'); console.log(str3); // tian shi 2019 n
判断字符串是否包含指定字符