diff --git a/common/space_lua/stdlib/string.ts b/common/space_lua/stdlib/string.ts index 003d40cb..e3ec83f9 100644 --- a/common/space_lua/stdlib/string.ts +++ b/common/space_lua/stdlib/string.ts @@ -94,7 +94,7 @@ export const stringApi = new LuaTable({ const reg = new RegExp(pattern); const index = s.slice(init - 1).search(reg); - if (index < 0) return; + if (index < 0) return null; const match = s.slice(init - 1).match(reg); const result = [index + init, index + init + match![0].length - 1]; diff --git a/common/space_lua/stdlib/string_test.lua b/common/space_lua/stdlib/string_test.lua index 1e8de795..f4856c16 100644 --- a/common/space_lua/stdlib/string_test.lua +++ b/common/space_lua/stdlib/string_test.lua @@ -185,3 +185,9 @@ assertEqual(#matches, 3) assertEqual(matches[1][1], "ll") assertEqual(matches[2][1], "lll") assertEqual(matches[3][1], "l") + +-- https://community.silverbullet.md/t/test-if-string-find-outputs-nil-not-working-as-expected/2342 +assert(string.find("a", "b") == nil) +assert(not (string.find("a", "b") ~= nil)) +assert(string.match("a", "b") == nil) +assert(not (string.match("a", "b") ~= nil))