Javascript 搜索并查找以特定号码开头的号码
我试图为我的自定义表插件创建一个搜索插件 在我的搜索中,我使用Javascript 搜索并查找以特定号码开头的号码,javascript,jquery,regex,json,search,Javascript,Jquery,Regex,Json,Search,我试图为我的自定义表插件创建一个搜索插件 在我的搜索中,我使用 function getObjects(obj, key, val, path) { for (var prop in obj) { if (prop == key && obj[key].toLowerCase().match(val)) { result.push(passName); matchFlag = 1; }
function getObjects(obj, key, val, path) {
for (var prop in obj) {
if (prop == key && obj[key].toLowerCase().match(val)) {
result.push(passName);
matchFlag = 1;
}
}
}
在哪里
- obj->JSON
- 键->搜索过滤器
- val->搜索关键字类似于“^m”
如何处理搜索关键字为数字的情况?我也尝试过使用indexOf。只要将空的
字符串连接起来,使值成为字符串即可:
function getObjects(obj, key, val, path) {
var value = val + "";
for (var prop in obj) {
if (prop == key && obj[key].toLowerCase().match(value)) {
result.push(passName);
matchFlag = 1;
}
}
}
这个问题来自json,通过添加toString()
您可以使用这个javascript库;Deviantjs(deviantjs.com),它使用“search”方法扩展了全局对象JSON。使用此方法,可以使用XPath表达式搜索JSON结构,如下所示:
var data = [
{
"name": "Tom",
"age": 27
},
{
"name": "Lisa",
"age": 22
}
],
res1 = JSON.search( data, '//*[name = "Lisa"]' ),
res2 = JSON.search( data, '//*[age = 27]' ),
res3 = JSON.search( data, '//name[contains(.,"om")]/..' );
console.log( res1[0].age );
// 22
console.log( res2[0].name );
// Tom
console.log( res3[0] );
// { "name": "Tom", "age": 27 }
这是一把小提琴:
您能举个例子吗?“如何处理搜索关键字为数字的情况?”这有什么不同?您的意思是如果val
实际上是一个数字(不是一个数字字符串)?您不能将数字搜索关键字转换为字符串吗?
var data = [
{
"name": "Tom",
"age": 27
},
{
"name": "Lisa",
"age": 22
}
],
res1 = JSON.search( data, '//*[name = "Lisa"]' ),
res2 = JSON.search( data, '//*[age = 27]' ),
res3 = JSON.search( data, '//name[contains(.,"om")]/..' );
console.log( res1[0].age );
// 22
console.log( res2[0].name );
// Tom
console.log( res3[0] );
// { "name": "Tom", "age": 27 }