I am trying to list all trigrams (3 letter words) in a given string depending on user input. User can enter 1.2 or 3 characters. I wrote the following code:
if (3 == trigram.length) {
var re = new RegExp(trigram);
} else if (2 == trigram.length) {
trigram = trigram + '\\S|\\S' + trigram;
var re = new RegExp(trigram);
} else if (1 == trigram.length) {
trigram = trigram + '\\S\\S|\\S\\S' + trigram + '|\\S' + trigram + '\\S';
var re = new RegExp(trigram);
} else {
alert("Trigram search pattern can be either one, two or three characters!");
return null;
}
var re = new RegExp(trigram, "ig"); alert(re);
trigramList = givenString.match(re);
This works fine, except that if I have the following character sequence in my string "KDSGKHAGSKH" and I search for trigrams consisting of "A", my code returns only "KHA", where I expect it to return { KHA, HAG, AGS}
source
share