Sto implementando glossario / dizionario in Javascript. È popolato con un insieme di termini e le loro definizioni internamente, quindi viene passato agli elementi jQuery e cerca l'HTML, sostituendo qualsiasi termine trovato con un collegamento alla loro definizione. L'implementazione corrente viene eseguita da forEach
ing sul dizionario sull'HTML e sta eseguendo String.prototype.replace()
laddove pertinente. Esempi di termini sarebbero "credito" e "rapporto di credito".
Ovviamente, questo causa problemi con le sottostringhe- se il dizionario definisce sia "credito" che "rapporto credito", l'implementazione corrente crea un collegamento per ogni quando incontra il "rapporto credito" nel codice HTML.
Ovviamente c'è un qualche tipo di problema di tokenizzazione, ma non sono sicuro di come gestirlo. Ho qualche idea di un'idea basata su un albero, in cui ogni nodo figlio aggiunge un pezzo alla stringa del genitore e ci sono definizioni allegate a ciascun nodo ... ma non riesco a trasformarlo in un'idea, inoltre mi sento come se fosse troppo ingegnerizzato .
Esiste un modo canonico per abbinare solo il termine più lungo? Sembra una variante su più lungo- sottostringa , ma ho avuto problemi nell'identificare i pezzi concettuali che corrispondono.