2013-08-16 155 views
-1

我有兩個字段,其名稱分別是:格式字段和擴展字段。在數組中搜索並匹配值

我要匹配像兩個領域:

var format  = $("#someid").val();// Eg value is excel; 
var extension = $("#someid").val();// eg value is xls; 
var FormatCheck= {"excel":["xls","xlsx"],"word":["doc","docx"],"html"["htm","html"],"mpp":["mpp"],"pdf":["pdf"],"ppt":["ppt","pptx"]}; 

然後,我要比較thevalue格式和擴展字段與FormatCheck數組。

如果它完全匹配數組,那麼我必須插入它。

+0

你確定'FormatCheck'是你想要它是什麼?它看起來像JSON,你說它是一個數組,我會認爲它不是...... – Joum

+0

沒有其他我使用像FormatCheck一樣的鍵,值對像Excel:xls,xlsx,因爲它的值 –

+0

我不認爲這是你有什麼適合的目的... – Joum

回答

-1

你不需要jquery。你可以試試這個

var FormatCheck = "xls,xlsx,doc,docx,html,htm,html,mpp,pdf,ppt,pptx".indexOf($("#someid").val()) > -1; 

if(FormatCheck) { /*extension is in range*/} 
else { /*it is not*/} 
0

我希望這應該工作,

var format  = $("#format_id").val();// Eg value is excel; 
var extension = $("#ext_id").val();// eg value is xls; 
var FormatCheck= [excel["xls","xlsx"],word["doc","docx"],html["htm","html"],mpp["mpp"],pdf["pdf"],ppt["ppt","pptx"]]; //Double dimensional array, 

function validExtension(format, extension, FormatCheck){ 
    for(var i = 0 , len = FormatCheck.length; i < len; i++){ 
    if($.inArray(FormatCheck[format], extension) == 1) return true; //Check if the format exists. 
    } 
    return false; 
} 

validExtension("excel","xls", FormatCheck) //returns true. 

有人請幫助我,如果我錯了地方糾正答案。

0

如果您FormatCheck舉辦不同它會更簡單:

var FormatCheck = {"xls": "excel", "xlsx": "excel", ... } 

否則,您需要掃描整個表,找到擴展:

var type = null; 
$.each(FormatCheck, function(key,val) { 
    if ($.inArray(val, extension) >= 0) { 
     type = key; 
    } 
}); 
相關問題