Моя попытка неограниченного регулярного выражения:
/^[+#*\(\)\[\]]*([0-9][ ext+-pw#*\(\)\[\]]*){6,45}$/
Принимает:
+(01) 123 (456) 789 ext555
123456
*44 123-456-789 [321]
123456
123456789012345678901234567890123456789012345
*****++[](][((( 123456tteexxttppww
Отклоняет:
mob 07777 777777
1234 567 890 after 5pm
john smith
(empty)
1234567890123456789012345678901234567890123456
911
Это зависит от вас дезинфицировать его для отображения. После проверки его число было бы числом.
Следующая строка:
this.setState = ({
forecast:response,
hasData:true
})
должно быть:
this.setState({
forecast:response,
hasData:true
})
Также следует рассмотреть возможность инициализации прогноза в состоянии пустым объектом.