Core/StringExt: Fix IsNumber returning true for "-"
This commit is contained in:
parent
d3fabf21d6
commit
63c61c0827
|
|
@ -26,12 +26,12 @@ namespace Nz
|
||||||
|
|
||||||
inline bool IsNumber(std::string_view str)
|
inline bool IsNumber(std::string_view str)
|
||||||
{
|
{
|
||||||
|
if (!str.empty() && str.front() == '-')
|
||||||
|
str.remove_prefix(1);
|
||||||
|
|
||||||
if (str.empty())
|
if (str.empty())
|
||||||
return false;
|
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();
|
return std::find_if(str.begin(), str.end(), [](unsigned char c) { return !std::isdigit(c); }) == str.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,8 @@ SCENARIO("String", "[CORE][STRING]")
|
||||||
{
|
{
|
||||||
CHECK(Nz::IsNumber("123456"));
|
CHECK(Nz::IsNumber("123456"));
|
||||||
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("123 "));
|
||||||
CHECK_FALSE(Nz::IsNumber("Nazara Engine"));
|
CHECK_FALSE(Nz::IsNumber("Nazara Engine"));
|
||||||
CHECK_FALSE(Nz::IsNumber("12345Nazara Engine"));
|
CHECK_FALSE(Nz::IsNumber("12345Nazara Engine"));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue