Ich habe eine HTML-Tabelle, die ich versuche, eine Funktion für. Ich werde alle Spaltennamen durchlaufen, und wenn sie ein Wort enthalten, das in meinem Array ist, werde ich diesen Spaltenwert entsprechend in einen formatierten Link umwandeln.Javascript Test Wert in Array
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>';
Wie konnte ich über die Prüfung der Wert gehen, um zu sehen, ob es eine teilweise Übereinstimmung in meinem output
Array hat und dann seine formatiert Link zurückzukehren?
Da diese Spaltennamen dynamisch sind und sich jederzeit ändern können, möchte ich nur nach Teilwörtern anstatt nach der exakten Zeichenfolge suchen.
Wenn es keine Übereinstimmung gibt, könnte ich einfach einen Platzhalterwert wie "Keine Übereinstimmung" zurückgeben.
Sie indexOf verwenden könnte der Wert zu überprüfen, ob in dem Objekt ist. Ex. if (output.indexOf (string) === -1) {// Keine Übereinstimmung} sonst {// Übereinstimmung} HINWEIS. Dies funktioniert nicht, wenn Sie die Schlüsselwerte Ihres Objekts überprüfen. –
@ 9focuspoints - Dies würde mir sagen, ob es da drin ist, aber wie würde ich dann würde ich direkt darauf zugreifen, um den Wert zu erhalten? – SBB
Benutze regex mit i flag new RegExp (valueToCheck.replace (/[.?*]/ g, "\ $ 1"), "i") –