Core/StringExt: Fix IsNumber returning true for "-"

This commit is contained in:
SirLynix 2024-01-26 10:11:07 +01:00
parent d3fabf21d6
commit 63c61c0827
2 changed files with 5 additions and 3 deletions

View File

@ -26,12 +26,12 @@ namespace Nz
inline bool IsNumber(std::string_view str)
{
if (!str.empty() && str.front() == '-')
str.remove_prefix(1);
if (str.empty())
return false;
if (str.front() == '-')
str.remove_prefix(1);
return std::find_if(str.begin(), str.end(), [](unsigned char c) { return !std::isdigit(c); }) == str.end();
}

View File

@ -69,6 +69,8 @@ SCENARIO("String", "[CORE][STRING]")
{
CHECK(Nz::IsNumber("123456"));
CHECK(Nz::IsNumber("-123456"));
CHECK_FALSE(Nz::IsNumber(""));
CHECK_FALSE(Nz::IsNumber("-"));
CHECK_FALSE(Nz::IsNumber("123 "));
CHECK_FALSE(Nz::IsNumber("Nazara Engine"));
CHECK_FALSE(Nz::IsNumber("12345Nazara Engine"));