2013-03-27 31 views
0

我有一个包含固定长度数据的排序数组。阵列如下,从数组中提取记录

var samplearray = [12122013sample2, 
        10122013sample1, 
        12122013sam 1.5 
        ]; 

从这个数组中,我想获得匹配到“12122013”​​的记录。也就是说,应该返回以下记录:

    12122013sample2 
        12122013sam 1.5 

这可能吗?

+2

no comma?只是? – Reigel 2013-03-27 10:15:12

+0

与你的问题无关,但这里有一个提示:使用'YYYYMMDD'格式代替'DDMMYYYY',然后你就可以很容易地按日期排序结果。 – zessx 2013-03-27 10:57:42

回答

2
function searchInArray(what, where) {  
    var results = []; 
    var regexp = new RegExp(what); 
    for (var i=0;i<where.length; i++) { 
     if (regexp.test(where[i])) results.push(where[i]); 
    } 
    return results.length>0 ? results : false; 
} 

它返回一个匹配元素的数组,或者如果找不到匹配,则返回false。 什么参数可以是字符串或正则表达式模式。

http://jsfiddle.net/gnYXJ/

+0

非常感谢您的宝贵回复。你能否实现相同的概念,而不区分大小 – user1800105 2013-03-30 09:13:51

+0

添加我的标志。例如,如果您正在寻找“样本”而没有案例敏感性,请使用var results = searchInArray(/ sample/i,yourarray); – RafH 2013-03-30 10:36:28