Tokenizer is messing with escaped regexes

This commit is contained in:
Belen Curcio
2017-08-22 16:37:24 -03:00
parent 9fa1f3d958
commit b6951488c4
+5 -1
View File
@@ -9,6 +9,10 @@ const Errors = require('../errors');
// REGEX to prevent emoji's from entering the wordlist.
const EMOJI_REGEX = /(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0]|\ud83c[\udffb-\udfff])?(?:\u200d(?:[^\ud800-\udfff]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0]|\ud83c[\udffb-\udfff])?)*/;
const escapeRegExp = function(s) {
return String(s).replace(/[\\^$*+?.()|[\]{}]/g, '\\$&');
};
/**
* The root wordlist object.
* @type {Object}
@@ -74,7 +78,7 @@ class Wordlist {
return [word];
}
return tokenizer.tokenize(word.toLowerCase());
return tokenizer.tokenize(escapeRegExp(word.toLowerCase()));
})
.filter((tokens) => {
if (tokens.length === 0) {