From be9aaa664a919d3076a6072c30a2e4fbdd8fa578 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BF=B7=E6=B8=A1?= Date: Wed, 4 Sep 2019 22:06:29 +0800 Subject: Fix boolean regexp (denoland/deno_std#582) Original: https://github.com/denoland/deno_std/commit/0b9e28f9185d1d237be025502894fa06682240f0 --- flags/bool_test.ts | 11 +++++++++++ flags/mod.ts | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/flags/bool_test.ts b/flags/bool_test.ts index a33e9be0b..422ae0933 100755 --- a/flags/bool_test.ts +++ b/flags/bool_test.ts @@ -155,3 +155,14 @@ test(function booleanParsingFalse(): void { assertEquals(parsed.boool, false); }); + +test(function booleanParsingTrueLike(): void { + const parsed = parse(["-t", "true123"], { boolean: ["t"] }); + assertEquals(parsed.t, true); + + const parsed2 = parse(["-t", "123"], { boolean: ["t"] }); + assertEquals(parsed2.t, true); + + const parsed3 = parse(["-t", "false123"], { boolean: ["t"] }); + assertEquals(parsed3.t, true); +}); diff --git a/flags/mod.ts b/flags/mod.ts index 0ebaaf52e..61cd06f91 100644 --- a/flags/mod.ts +++ b/flags/mod.ts @@ -271,7 +271,7 @@ export function parse( ) { setArg(key, args[i + 1], arg); i++; - } else if (args[i + 1] && /true|false/.test(args[i + 1])) { + } else if (args[i + 1] && /^(true|false)$/.test(args[i + 1])) { setArg(key, args[i + 1] === "true", arg); i++; } else { -- cgit v1.2.3