…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