hash = hash.replace('#','');
search = hash.replace('?name=','');
Вот тут что то не так
Добавил
alert([hash,search])
и выяснилось что
hash = players?name=LaGer
search = playersLaGer
т.е. оно заменяет нужные фрагменты, но тем не менее оставляет не нужные символы, в первом случае оставляет ?name=LaGer
Во втором: players