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 }