Почему метод match не работает RegExp включающий JS-переменную?
Потому что у вас в regex содержится обычная строка, а не объект регулярного выражения.
Собирать этот объект из строки нужно так: new RegExp('[' + v + ']', 'g');
https://developer.mozilla.org/en-US/docs/Web/JavaS...
чтобы использовать переменную используйте var regex = new RegExp( '[' +v+ ']','g');