aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorshayan javani <shayan.javani@gmail.com>2022-10-07 10:04:12 +0330
committerLouis Pilfold <louis@lpil.uk>2022-12-21 22:37:07 +0000
commit5fdbeecc1a9790a253bb7c3fb09b6d6537c5cce9 (patch)
tree52aec88a09955db7ccd793b4120b8c0eab2ee782 /src
parent4e3830dbacc34500c7d27954ba6f043ca648df69 (diff)
downloadgleam_stdlib-5fdbeecc1a9790a253bb7c3fb09b6d6537c5cce9.tar.gz
gleam_stdlib-5fdbeecc1a9790a253bb7c3fb09b6d6537c5cce9.zip
fixed javascript code for int_from_base_string
Diffstat (limited to 'src')
-rw-r--r--src/gleam_stdlib.mjs50
1 files changed, 43 insertions, 7 deletions
diff --git a/src/gleam_stdlib.mjs b/src/gleam_stdlib.mjs
index 2fafcd9..697662f 100644
--- a/src/gleam_stdlib.mjs
+++ b/src/gleam_stdlib.mjs
@@ -57,13 +57,49 @@ export function int_to_base_string(int, base) {
return int.toString(base).toUpperCase();
}
+const digits = [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "a",
+ "b",
+ "c",
+ "d",
+ "e",
+ "f",
+ "g",
+ "h",
+ "i",
+ "j",
+ "k",
+ "l",
+ "m",
+ "n",
+ "o",
+ "p",
+ "q",
+ "r",
+ "s",
+ "t",
+ "u",
+ "v",
+ "x",
+ "y",
+ "z",
+];
+
export function int_from_base_string(string, base) {
- const result = parseInt(string, base)
- if (isNaN(result)) {
- return new Error(Nil)
- } else {
- return new Ok(result)
+ if (digits.slice(base).some((d) => string.toLowerCase().includes(d))) {
+ return new Error(Nil);
}
+ return new Ok(parseInt(string, base));
}
export function string_replace(string, target, substitute) {
@@ -98,7 +134,7 @@ export function string_length(string) {
}
return i;
} else {
- return string.match(/./gus).length;
+ return string.match(/./gsu).length;
}
}
@@ -120,7 +156,7 @@ export function pop_grapheme(string) {
if (iterator) {
first = iterator.next().value?.segment;
} else {
- first = string.match(/./us)?.[0];
+ first = string.match(/./su)?.[0];
}
if (first) {
return new Ok([first, string.slice(first.length)]);