Вроде бы, не получится. Никак.
Number()
при вызове как функции, конвертирует аргумент в численный тип. Если не получается, возвращает
NaN
(Not A Number) – специальное значение, которое при конвертации в булев даёт
false
.
Т.е.
(! Number(value))
сработает когда переданное не перевести в число, или когда число
0
.
Number()
довольно строг с конвертацией в число, по сравнению даже с
parseInt()
:
parseInt("123HabraHabr") // 123
Number("123HabraHabr") // NaN
Чтобы хакнуть этот бот, нужно придумать такую строку, что
Number()
проглотил бы как число, но при этом она содержала код, который JS как-то интерпретирует. Типа
'123 & alert("Habr!")'
– но нет, через
Number()
это не пролезет, увы.