2011-03-10 36 views
0

我有兩種初始化方法:initXML(url)initJSON(url),它們接受一個url參數。該參數必須是指向XML或JSON文件的url字符串,具體取決於函數。如何獲取javascript函數內的url字符串的文件類型?

我想要做的是隻有一個方法叫做init(url)它接受一個URL參數,然後基於URL參數字符串的文件類型initXML()initJSON()調用。

例如如果url參數類似於'content/file.json'調用initJSON(),如果它是'other/file.xml'調用initXML(),如果另一個文件類型返回錯誤。

我怎麼知道這個?

在此先感謝。

回答

2

使用String.match()

function init(url) 
{ 
    if (url.match(/\.json$/i)) 
    { 
     initJSON(); 
    } 
    else if (url.match(/\.xml$/i)) 
    { 
     initXML(); 
    } 
    else 
    { 
     throw "Unknown file type"; 
    } 
} 
0

一個做這將是假設,在你的URL的唯一時期是在最後,就在文件類型之前的很快速的方法:

var type = url.split('.'); 
type = type[1]; 

然後type變量是,要麼'json''xml'

一個更簡單的系統將使用正則表達式:

var type = /\.(xml|json)$/.exec(url); 
type = type[1]; 
0

你可以使用正則表達式是這樣的:

var isJSON = /\.json$/i; 
var isXML = /\.xml$/i; 
if(isJSON.test(url) == true) 
    initJSON() 
else if(isXML.test(url) == true) 
    initXML() 
else 
    return('error'); 
相關問題