如何取得数据库中name字段中“aaabbbcccdddeee”中的"ccc"子串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何取得数据库中name字段中“aaabbbcccdddeee”中的"ccc"子串相关的知识,希望对你有一定的参考价值。
"aaabbbcccdddeee" 从任意一个开始到任意一个结束怎样截取
参考技术A 从任意一个开始到任意一个结束:str="aaabbbcccdddeee"
str=mid(str,7,3)
从地7个字符开始取,然后取从第7个字符开始的连续3个字符结束。最后结果是str="ccc" 参考技术B 很多
正则表达式也可以
教你个简单的
str = "aaabbbcccdddeee"
str1 = replace(str,"a","")'把a去掉
str2 = replace(str1,"b","")'把b去掉
str3 = replace(str2,"d","")'把d去掉
str4 = replace(str3,"e","")'把e去掉
最后
str4 = "ccc" 参考技术C select substring(name,7,3);
sqlserver的
substring(源串,起始位置,个数) 参考技术D 正则表达式
Javascript如何按字段在数组中搜索[重复]
【中文标题】Javascript如何按字段在数组中搜索[重复]【英文标题】:Javascript How to search in array by field [duplicate] 【发布时间】:2017-01-13 20:40:34 【问题描述】:我有一个保存这些数据的变量:
"main":[
"id":"123","name":"name 1",
"id":"234","name":"name 2"
]
我知道我要搜索的数据的id。
我的问题是...如何搜索 id 234 的名称(例如)是上面的数据?
【问题讨论】:
使用 JSON.parse()。 用for迭代并比较每条记录。 【参考方案1】:使用Array#filter
filter()
方法创建一个新数组,其中包含所有通过所提供函数实现的测试的元素。
var object =
"main": [
"id": "123",
"name": "name 1"
,
"id": "234",
"name": "name 2"
]
;
var toFind = "234";
var filtered = object.main.filter(function(el)
return el.id === toFind;
);
console.log(filtered);
如果array
中只有一个对象,则可能首选for-loop
和break
。
var object =
"main": [
"id": "123",
"name": "name 1"
,
"id": "234",
"name": "name 2"
]
;
var toFind = "234";
for (var i = 0, len = object.main.length; i < len; i++)
if (object.main[i].id === toFind)
break;
console.log(object.main[i].name);
【讨论】:
为什么要使用过滤器?它将遍历所有数组 @pwolaq – OP 可能有多个具有相似 ID 的对象... OP 说他想得到一个名字,而不是有名字的对象数组 @pwolaq - 不确定谁是正确的,我也添加了另一种方法......我希望它也能涵盖你的观点......【参考方案2】:在 ES5 环境中,您可以使用 Array#some
,如果您只期望一个结果。
var data = "main": [ "id": "123", "name": "name 1" , "id": "234", "name": "name 2" ] ,
result;
data.main.some(function (a)
if (a.id === '234')
result = a;
return true;
);
console.log(result);
当您期望多个结果集时,您最好使用Array#filter
var data = "main": [ "id": "123", "name": "name 1" , "id": "234", "name": "name 2a" , "id": "234", "name": "name 2" ] ,
result = data.main.filter(function (a)
return a.id === '234';
);
console.log(result);
在 ES6 环境中,您可以使用Array#find
作为第一个找到的元素,但如果要查找更多,则使用Array#filter
。
var data = "main": [ "id": "123", "name": "name 1" , "id": "234", "name": "name 2" ] ,
result = data.main.find(a => a.id === '234');
console.log(result);
【讨论】:
【参考方案3】:如果 id 是唯一的,您可以使用 find()
。
var data = "main":[
"id":"123","name":"name 1",
"id":"234","name":"name 2"
]
var name = data.main.find(function(o)
return o.id == '234';
).name;
console.log(name)
【讨论】:
find
是 ES6 的一部分
更不用说如果没有给定id的元素会导致错误【参考方案4】:
您可以使用Array.prototype.filter 查找所有匹配的元素并将它们作为新数组返回。
要查找第一个匹配项,您可以使用 Array.prototype.find (ES2015+)。
【讨论】:
以上是关于如何取得数据库中name字段中“aaabbbcccdddeee”中的"ccc"子串的主要内容,如果未能解决你的问题,请参考以下文章