Test If String Contains All Characters That Make Up Another String

I am trying to use Javascript to see if a certain string contains all characters that make up another string.

For instance, the word “hello” contains all characters that make up the word “hell.” Also, the word “hellowy” contains all characters that make up the word “yellow.”

Most importantly, the method needs to work irrespective of the order of characters in both string. In addition, the numbers of characters matters. “Hel” does not contain all characters to make up “hell.” This refers strictly to the number of characters: one needs two l’s to make word “hell” and “hel” only has one.

Further clarifying the question, I am not worried if I am left with some “unused” characters after the composition of the substring from the characters of the string. That is, “helll” still should contain all letters for the word “hell.”

How can I accomplish this efficiently? Perhaps there is a regex solution? Speed is somewhat of an issue, but not absolutely critical.


You can use every:

function test(string, substring) {
    var letters = [...string];
    return [...substring].every(x => {
        var index = letters.indexOf(x);
        if (~index) {
            letters.splice(index, 1);
            return true;

Every will fail in the first falsy value, then it does not search every letter.

Leave a Reply

Your email address will not be published. Required fields are marked *