Проблема в том, что ваш arrCategorySort[i]
в виде строки содержит специальные символы в том, что касается анализатора RegExp (например, {}
и []
).Когда ваша строка на месте, вы пытаетесь разобрать regexp
/\bfunction (a,b){var c=b||window,d=[];for(var e=0,f=this.length;e<f;++e){if(!a.call(c,this[e],e,this))continue;d.push(this[e])}return d}\b/
После вашего (a,b)
в начале, в {}
у вас есть var ...
однако {}
означает повторный паттерн и ожидаетсяиметь число между ними (или два числа).Что вам действительно нужно, так это экранировать все специальные символы: {}[]|()\,.*+
- добавив символ «\» перед каждым из них.(Может быть, еще пара, ускользает от меня в данный момент.)