…L@ iMÿ–û+ÀX K"Y^ÒšTy"È¡a"²*µöz½0uü°êN(x`¶X@R˜ó—xÿŠÖCæðìJ$¢€0œEùÝ]›ý¢Ðÿ@òÆßyÀMd DSCSQ¢„;è(Hí;WQ4{ðç¨5$
Y
'§bid&ddates2025-12-26T12:25:00etitlex9メールアドレスãªã©ã®ãƒã‚§ãƒƒã‚¯ã€IPChecker.jsdtagsc#jscurlxhttps://fukuno.jig.jp/4902dbodyy H

特定ã®ãƒ‰ãƒ¡ã‚¤ãƒ³ã«ã‚るメールアドレスã‹ã©ã†ã‹ãªã©ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã‚·ãƒ³ãƒ—ルãªJavaScriptã®ãƒ©ã‚¤ãƒ–ラリã€IDCheckerã‚’ã¤ãりã¾ã—ãŸã€‚
テストファーストã€AIã—ã‚ã’ãªãƒ©ã‚¤ãƒ–ラリã®ä½œã‚Šæ–¹ã€‚
1. 使ã†ã‚¤ãƒ¡ãƒ¼ã‚¸ã§ãƒ†ã‚¹ãƒˆã‚³ãƒ¼ãƒ‰ã‚’ã‹ã
import * as t from "https://deno.land/std/testing/asserts.ts";
import { IDChecker } from "./IDChecker.js";
Deno.test("simple", () => {
const ts = new IDChecker([
"*@test.com",
"abc@test2.com",
"ghi@*",
]);
t.assertEquals(ts.check("abc@test.com"), true);
t.assertEquals(ts.check("def@test.com"), true);
t.assertEquals(ts.check("@test.com"), true);
t.assertEquals(ts.check("test.com"), false);
t.assertEquals(ts.check("abc@test2.com"), true);
t.assertEquals(ts.check("abc@test3.com"), false);
t.assertEquals(ts.check("ghi@test3.com"), true);
t.assertEquals(ts.check("ghi@test4.com"), true);
});
今回ã»ã—ã„ã®ã¯å¾Œæ–¹ä¸€è‡´ã¨å®Œå…¨ä¸€è‡´ã§ã—ãŸãŒã€ã¤ã„ã§ã«å‰æ–¹ä¸€è‡´ã‚‚作ã£ã¦ãŠãã“ã¨ã«ã—ã¾ã™ã€‚(よãã°ã‚Šã™ãŽã«æ³¨æ„ï¼ï¼‰
2. テストãŒé€šã‚‹ã‚ˆã†ã«å®Ÿè£…ã™ã‚‹
export class IDChecker {
constructor(list) {
this.list = list;
}
check(s) {
for (const item of this.list) {
if (item.startsWith("*")) {
if (s.endsWith(item.substring(1))) return true;
} else if (item.endsWith("*")) {
if (s.startsWith(item.substring(0, item.length - 1))) return true;
} else if (item == s) {
return true;
}
}
return false;
}
}
割ã¨ç°¡å˜ã§ã™ãŒã€ã‚³ãƒ³ãƒ‘クトã«ãƒ†ã‚¹ãƒˆã§ãã‚‹ã®å¤§äº‹ï¼
3. AIã«ãƒ‰ã‚ュメントやãƒã‚´ã‚’作ã£ã¦ã‚‚らã„ãƒã‚§ãƒƒã‚¯ï¼

「code4fukui/IDCheckerã€
ã§ãã‚ãŒã‚Šï¼
ã¤ã„ã§ã«è‹±èªžãƒ‰ã‚ュメントもã§ãã¡ã‚ƒã„ã¾ã™ï¼
ã¤ãã‚ã†ã€OSSã€ã‚ªãƒ¼ãƒ—ンソースソフトウェアï¼
cimgxGhttps://img.sabae.cc/data/2063/195b76ef-2ede-48a7-b58d-4a5da8fc80b0.jpg