"problem":
regex
jest object
- rodzaj odniesienia, więc comparsion odbywa się poprzez odniesienie, a to są dwa różne obiekty.
console.log(typeof /a/); // "object"
Jeśli oba operandy są obiektami, a następnie porównuje JavaScript odniesień wewnętrznych, które są równe, gdy argumenty odnoszą się do tego samego obiektu w pamięci.
MDN
Rozwiązanie:
var a = /a/;
var b = /a/;
console.log(a.toString() === b.toString()); // true! yessss!
Live DEMO
Kolejny "hack" zmusić toString()
na regex
ES:
console.log(a + "" === b + "");
nie jest to przypuszczenie, to właściwą odpowiedź ... +1 – gdoron