2013-12-03 74 views
1

我有一個採用單個參數的javascript方法。該參數可以是一個路徑(在這種情況下,函數將使用ajax來解析變量,函數(將被調用來解析變量,或者有效標記(將直接使用))。尋找建議,表示路徑的字符串和表示標記的字符串區分區分路徑和標記字符串

注:我不是太擔心,如果標記爲無效

回答

0

那麼,如果你被卡住你得到了功能,那麼你就不得不用正則表達式來確定你所得到的結果了,問題在於,它可能容易出錯

你最好傳遞一個對象,讓對象根據它具有的屬性來告訴你你有什麼。

function myMethod(obj) { 
    if (obj.path) { 
     console.log("I have a path:", obj.path); 
    } else { 
     console.log("I have a path:", obj.html); 
    } 
} 

myMethod({"path":"/foo/bar/"}); 
myMethod({"html":"<p>/foo/bar/</p>"}); 
0

您可以使用這樣的事情:

function validate(param) { 

    if (typeof(param) == 'function') { 
     console.log('It is a function!') 
    } else if (typeof(param) == 'string') { 

     if (param.indexOf('http') == 0) { 
      console.log('It is a path!') 
     } else { 
      console.log('It is a markup!') 
     } 
    } 
} 

這是遠遠不夠完善(尤其是在道路部門),但它是一個起點。

演示:http://jsfiddle.net/4369k/