0
我有一個HTML表我試圖創建一個函數。我將遍歷所有的列名,如果它們包含我的數組中的單詞,那麼我將相應地將該列值轉換爲格式化的鏈接。Javascript測試值數組
function createLink(field, val){
// Create a mapping of our data
var output = {
'ntid': 'https://example.com/profile/'+val,
'email': 'mailTo:' + val
};
// Test and return values
// pseudo code
if(field matches a key partially in output){
return '<a href="'+output[value]+'" target="_blank">'+[val]+'</a>';
}else{
return 'No Matches';
}
}
// Examples
createLink('NTID', 'bob'); // '<a href="https://example.com/profile/bob" target="_blank">bob</a>';
createLink('Sup NTID', 'bob'); // '<a href="https://example.com/profile/bob" target="_blank">bob</a>';
createLink('Email', '[email protected]'); // '<a href="mailTo:[email protected]" target="_blank">[email protected]</a>';
createLink('Sup Email', '[email protected]'); // '<a href="mailTo:[email protected]" target="_blank">[email protected]</a>';
我怎麼可能去測試值,看它是否有部分匹配在我output
數組,然後返回它的格式的鏈接?
由於這些列名是動態的,可以隨時更改,所以我只想測試部分文字而不是確切的字符串。
如果沒有匹配,我可以返回一個佔位符值,如「不匹配」。
你可以使用的indexOf檢查,如果值是在對象。防爆。 if(output.indexOf(string)=== -1) {//不匹配} else {//匹配} 注意。如果您使用對象的鍵值進行檢查,這將不起作用。 –
@ 9focuspoints - 這會告訴我它是否在那裏,但是如何直接訪問它以獲得價值? – SBB
使用表達式與我旗新的RegExp(valueToCheck.replace(/[.?*]/克, 「\ $ 1」), 「I」) –