æååã®åºæ¬ã«ã¤ãã¦ã¯ãã§ã«è¦ã¾ãããããããã¯ã¬ãã«ãä¸ãã¦ãçµã¿è¾¼ã¿ã®ã¡ã½ããã使ç¨ãã¦æååã«å¯¾ãã¦å®è¡ã§ãã便å©ãªæä½ã«ã¤ãã¦èãã¦ã¿ã¾ããããä¾ãã°ãæååã®é·ãã調ã¹ãããç¹ããããåå²ããããããæåãä»ã®æåã«ç½®ãæããããªã©ã§ãã
åæç¥è: HTMLããã³CSS ã®åºç¤ãçè§£ãã¦ãããã¨ãæååã®åºæ¬ã®ç¥èã å¦ç¿ææ: JavaScript ã§çµã¿è¾¼ã¾ããä¸è¬çãªããããã£ã¨ã¡ã½ããã使ç¨ããæååæä½ã ãªãã¸ã§ã¯ãã¨ãã¦ã®æååJavaScript ã«ããããªãã¸ã§ã¯ãã¯ãã§ã¯ã»ã¨ãã©ã®ãã®ã¯ãªãã¸ã§ã¯ãã§ãããã¨ãã°ã次ã®ããã«æååãä½ã£ãæãã
const string = "This is my string";
夿°èªä½ã¯ãªãã¸ã§ã¯ãã§ã¯ããã¾ããããããããã£ã«ã¢ã¯ã»ã¹ããæã«ã¯ãªãã¸ã§ã¯ãã¨ãã¦å©ç¨ã§ãããããæ°å¤ãã®ããããã£ãã¡ã½ãããå©ç¨ã§ãã¾ãããã®ãã¨ã¯ã String
ãªãã¸ã§ã¯ãã®ãã¼ã¸ã«ã¢ã¯ã»ã¹ãããã¼ã¸ã®æ¨ªã«ä¸¦ãã§ãããªã¹ããè¦ãã°ãããã¾ãã
ã¾ããè³ã溶ãåºãããããããã¾ããããå®å¿ãã¦ãã ããï¼ å ã»ã©ã®ãã¼ã¸ã«ãããã»ã¨ãã©ã®ã¡ã½ããã¯å¦ç¿ã®åæã«è¦ããå¿ è¦ã¯ããã¾ãããããããä»ããç´¹ä»ãããæååæä½ã®ã¡ã½ããã¯ã¨ã¦ããã使ãã¾ãã®ã§ãã²è¦ãã¾ãããã
ãã©ã¦ã¶ã¼ã®éçºè ã³ã³ã½ã¼ã«ã«ããã¤ãã®ä¾ãå ¥åãã¦ã¿ã¾ãããã
æååã®é·ãã調ã¹ããã length
ããããã£ã使ç¨ããã°ããã®ã§ãã¨ã¦ãç°¡åã§ããæ¬¡ã®è¡ãå
¥åãã¦ã¿ã¾ãããã
const browserType = "mozilla";
browserType.length;
ããã¯æ°åã® 7 ãè¿ãã¯ãã§ãããªããªã "mozilla" 㯠7 æåã ããã§ãããã®ä¾ã¯å¤ãã®å ´åã«æçãªãã®ã§ããä¾ãã°ãä¸é£ã®ååã®é·ããæ¢ãã¦é·ãé ã«è¡¨ç¤ºãããã ã¦ã¼ã¶ã¼ãããå½¢å¼ã§å ¥åããã¦ã¼ã¶ã¼åãããé·ããè¶ ãã¦ããå ´åã«é·ããããã¨ã ç¥ãããããããã¨ãã§ãã¾ãã
æååã®ç¹å®ã®æåãåãåãåã®ä¾ã¨é¢é£ãã¦ãã¾ãããæååã«å¯¾ãã¦ãã©ã±ããè¨æ³ã使ç¨ãããã¨ã§æååä¸ã®ä»»æã® 1 æåãå¾ããã¾ããã¤ã¾ãè§æ¬å¼§ ([]
) ã夿°åã®å¾ãã«ä»ãããã®ä¸ã«æ°å¤ãå
¥ãããã¨ã§ããã®ä½ç½®ã«ããæåãè¿ã£ã¦ãã¾ããä¾ãã°æåã® 1 æåãåå¾ããã«ã¯æ¬¡ã®ããã«ãã¾ãã
ã³ã³ãã¥ã¼ã¿ã¼ã¯ 1 ããã§ã¯ãªãã0 ããæ°ãã¾ãã
æååã®ä¸çªæå¾ã®æåãåå¾ãããã¨ãã¯ãå
ã»ã©ã® length
ããããã£ã¨çµã¿åããã¦ä»¥ä¸ã®ããã«ãã¾ãã
browserType[browserType.length - 1];
"mozilla" ã®é·ã㯠7 ã§ããã0 ããå§ã¾ãã®ã§ãæå¾ã®æåã®ä½ç½®ã¯ 6 ã«ãªãã¾ãããã£ã¦ length-1
ã¨ããå¿
è¦ãããã®ã§ãã
大ããªæååã®ä¸ã«ãå°ããªæååãåå¨ãããã©ãããæ¢ãããå ´åãããã¾ãï¼ä¸è¬çã«ã¯ããæååã®ä¸ã«é¨åæååãç¾ãããã©ãããã¨è¨ãã¾ãï¼ãããã¯ã includes()
ã¡ã½ããã使ç¨ãããã¨ãã§ãã¾ãããã®ã¡ã½ããã¯ãåä¸ã®å¼æ°ï¼æ¤ç´¢ãããé¨åæååï¼ãåãã¾ãã
æååããã®é¨åæååãå«ãã§ããã° true
ãè¿ããããã§ãªããã° false
ãè¿ãã¾ãã
const browserType = "mozilla";
if (browserType.includes("zilla")) {
console.log("Found zilla!");
} else {
console.log("No zilla here!");
}
æååãç¹å®ã®é¨åæååã§å§ã¾ããçµããããç¥ããããã¨ã¯ããããã¾ããããã¯ãããããã¼ãºãªã®ã§ã 2 ã¤ã®ç¹å¥ãªã¡ã½ãããããã¾ãã startsWith()
㨠endsWith()
ã§ãã
const browserType = "mozilla";
if (browserType.startsWith("zilla")) {
console.log("Found zilla!");
} else {
console.log("No zilla here!");
}
const browserType = "mozilla";
if (browserType.endsWith("zilla")) {
console.log("Found zilla!");
} else {
console.log("No zilla here!");
}
æååå
ã®é¨åæååã®ä½ç½®ãæ¢ã
大ããªæååå
ã®é¨åæååã®ä½ç½®ãæ¢ãã«ã¯ã indexOf()
ã¡ã½ããã使ç¨ãã¾ãããã®ã¡ã½ãã㯠2 ã¤ã®å¼æ°ãæ¤ç´¢ãããé¨åæååã¨ãæ¤ç´¢ã®éå§ç¹ãæå®ãããªãã·ã§ã³ã®å¼æ°ãåãã¾ãã
æååãé¨åæååãå«ãå ´åã indexOf()
ã¯é¨åæååã®æåã®åºç¾ä½ç½®ã®ã¤ã³ããã¯ã¹ãè¿ãã¾ããæååãé¨åæååãå«ã¾ãªãå ´åã indexOf()
㯠-1
ãè¿ãã¾ãã
const tagline = "MDN - Resources for developers, by developers";
console.log(tagline.indexOf("developers")); // 20
0
ããå§ãã¦ãæååã®å
é ããæåæ°ï¼ç©ºç½ãå«ãï¼ãæ°ããã¨ãé¨åæåå "developers"
ã®æåã®åºç¾ä½ç½®ã®ã¤ã³ããã¯ã¹ã¯ 20
ã§ãã
console.log(tagline.indexOf("x")); // -1
䏿¹ã x
ã¨ããæåã¯æååä¸ã«åå¨ãã¾ããã®ã§ã -1
ãè¿ãã¾ãã
ããã§é¨åæååã®æåã®åºç¾ç®æãæ¢ãæ¹æ³ã¯ããã£ãã¨æãã¾ããããã以éã®åºç¾ç®æãæ¢ãã«ã¯ã©ãããã°ããã®ã§ããããï¼ã¡ã½ããã® 2 ã¤ç®ã®å¼æ°ã«ãåååºç¾ããæååã®ã¤ã³ããã¯ã¹ããã大ããªå¤ã渡ãã¾ãã
const firstOccurrence = tagline.indexOf("developers");
const secondOccurrence = tagline.indexOf("developers", firstOccurrence + 1);
console.log(firstOccurrence); // 20
console.log(secondOccurrence); // 35
ããã§ã¯ãã¤ã³ããã¯ã¹ 21
(firstOccurrence + 1
) ããå§ã¾ãé¨åæåå "developers"
ãæ¤ç´¢ããããã«ã¡ã½ããã«æç¤ºãã¦ãããã¤ã³ããã¯ã¹ 35
ãè¿ãã¦ãã¾ãã
æååããé¨åæååãæ½åºããã«ã¯ã slice()
ã¡ã½ããã使ç¨ãã¾ããæ¸¡ãã®ã¯æ¬¡ã®ãã®ã§ãã
ä¾ãæãã¾ãã
const browserType = "mozilla";
console.log(browserType.slice(1, 4)); // "ozi"
ã¤ã³ããã¯ã¹ 1
ã®æå㯠"o"
ã§ãã¤ã³ããã¯ã¹ 4 ã®æå㯠"l"
ã§ããããã§ã "o"
ããå§ã¾ã "l"
ã®ç´åã§çµããæåããã¹ã¦æ½åºããã¨ã "ozi"
ã¨ãªãã¾ãã
ããæå以éã®æååã®æ®ãã®æåããã¹ã¦æ½åºããããã¨ãããã£ã¦ããå ´åã¯ã2ã¤ç®ã®å¼æ°ãè¨è¼ããå¿ è¦ã¯ããã¾ããã代ããã«ãæååã®æ®ãã®æåãæ½åºãããæåã®ä½ç½®ãæå®ããã ãã§ããæ¬¡ã®ä¾ã試ãã¦ã¿ã¦ãã ããã
browserType.slice(2); // "zilla"
ãã㯠"zilla"
ãè¿ãã¾ãã 2 ã®æåä½ç½®æå®ãæå "z"
ã§ããã 2 ã¤ç®ã®å¼æ°ãæå®ãã¦ããªããããæååã®æ®ãã®æåããã¹ã¦é¨åæååã¨ãã¦è¿ãããããã§ãã
ã¡ã¢: slice()
ã«ã¯ä»ã«ããªãã·ã§ã³ãããã®ã§ã slice()
ã®ãã¼ã¸ã§èª¿ã¹ã¦ã¿ã¦ãã ããã
æååã«ã¯ toLowerCase()
㨠toUpperCase()
ã¨ãã 2 ã¤ã®ã¡ã½ãããããã弿°ã¨ãã¦æ¸¡ãããæååã®ãã¹ã¦ã®æåã®å¤§æåå°æåãåãæ¿ãã¾ããããã¯ä¾ãã°ãã¦ã¼ã¶ã¼ã®å
¥åã DB ã«ä¿åããå ´åã«ãå¤ãæ£è¦åããã®ã«ä¾¿å©ã§ãã
ããã§ã¯æ¬¡ã®è¡ãå ¥åããä½ãèµ·ãããè¦ã¦ã¿ã¾ãããã
const radData = "My NaMe Is MuD";
console.log(radData.toLowerCase());
console.log(radData.toUpperCase());
æååã®ä¸é¨åãæ¸ãæãã
replace()
ã¡ã½ããã使ç¨ãããã¨ã§ãããé¨åæååãä»ã®æååã«ç½®ãæãããã¨ãã§ãã¾ãã
æ¤ç´¢ããæååã¨ãç½®ãæããæååã® 2 ã¤ã弿°ã«åãã¾ããæ¬¡ã®ä¾ãå®è¡ãã¦ã¿ã¦ãã ããã
const browserType = "mozilla";
const updated = browserType.replace("moz", "van");
console.log(updated); // "vanilla"
console.log(browserType); // "mozilla"
replace()
ã¯ãå¤ãã®æååã¡ã½ããã¨åæ§ã«ãåä»ããããæååã夿´ããã®ã§ã¯ãªããæ°ããæååãè¿ããã¨ã«æ³¨æãã¦ãã ãããå
ã®å¤æ° browserType
ãæ´æ°ãããå ´åã¯ã次ã®ããã«ããå¿
è¦ãããã¾ãã
let browserType = "mozilla";
browserType = browserType.replace("moz", "van");
console.log(browserType); // "vanilla"
ããã§ã browserType
ãå代å
¥ããããã const
ã§ã¯ãªãã let
ã使ç¨ãã¦å®£è¨ããå¿
è¦ããããã¨ã«æ³¨æãã¦ãã ããã
ãã®å½¢ã§ replace()
ã¯é¨åæååãæåã«åºç¾ãããã®ã ãã夿´ãããã¨ã«æ³¨æãã¦ãã ããããã¹ã¦å¤æ´ãããå ´å㯠replaceAll()
ã使ç¨ãããã¨ãã§ãã¾ãã
let quote = "To be or not to be";
quote = quote.replaceAll("be", "code");
console.log(quote); // "To code or not to code"
ã¢ã¯ãã£ãã©ã¼ãã³ã°ã®ä¾
ãã®ç¯ã§ã¯ãæååã®å¦çã³ã¼ããå®éã«æ¸ãã¦ã¿ããã¨ã«ãã¾ãã 以ä¸ã®ããããã®ç·´ç¿åé¡ã§ã¯ãæååã®é åã¨ããã®é åã®åå¤ãå¦çãã¦ç®æ¡æ¸ãã§è¡¨ç¤ºããã«ã¼ããç¨æãã¦ãã¾ãã ç¾å¨ãé åãã«ã¼ãã«ã¤ãã¦æ£ããçè§£ã¯å¿ è¦ããã¾ããããããã¯å°æ¥ã®è¨äºã§èª¬æãã¾ãã ããããã®ã±ã¼ã¹ã§å¿ è¦ãªã®ã¯ãæååã叿ããå½¢å¼ã§åºåããã³ã¼ããæ¸ããã¨ã§ãã
ã©ã®ä¾ã«ãããªã»ããããã¿ã³ãããã®ã§ãã³ã¼ããåããªããªã£ãå ´åã¯ä½¿ç¨ãã¦ã¿ã¦ãã ãããããæ¬å½ã«è¡ãè©°ã¾ã£ã¦ãã¾ã£ãå ´åã«ã¯ããçããè¦ãããã¿ã³ãæ¼ããã¨ã§ãåçãè¦ããã¨ãã§ãã¾ãã
æ¨æ¶ã¡ãã»ã¼ã¸ã®é¸å¥æåã®ç·´ç¿ã§ã¯ãç°¡åãªãã¨ããå§ãã¾ããããã°ãªã¼ãã£ã³ã°ã«ã¼ãã®ã¡ãã»ã¼ã¸ã®é
åãããã¾ãããã¯ãªã¹ãã¹ã®ã¡ãã»ã¼ã¸ã ããåãåºãããã«ä¸¦ã¹æ¿ãããã®ã§ããããããã®æååããã¹ããããããã¯ãªã¹ãã¹ã®ã¡ãã»ã¼ã¸ã§ããå ´åã®ã¿ãªã¹ãã«åºåãããããã« if ()
æ§é å
ã®æ¤æ»æ¡ä»¶ãåãã¦ãã ããã
ããããã®å ´åã®ã¡ãã»ã¼ã¸ããã¯ãªã¹ãã¹ã¡ãã»ã¼ã¸ã§ãããã©ãããæ¤æ»ããæ¹æ³ãèãã¦ã¿ã¦ãã ããããããã®ã¡ãã»ã¼ã¸ã®ãã¹ã¦ã«åå¨ããæååã¯ä½ã§ããããï¼ã¾ãããããåå¨ãããã©ãããæ¤æ»ããããã«ãã©ã®ãããªã¡ã½ããã使ç¨ãããã¨ãã§ãã¾ããï¼
<h2>åºåçµæ</h2>
<div class="output" style="min-height: 125px;">
<ul></ul>
</div>
<h2>ã³ã¼ãã¨ãã£ã¿ã¼</h2>
<p class="a11y-label">
ã³ã¼ãã¨ãã£ã¿ã¼ããæããã«ã¯ Esc ãã¼ãæ¼ãã¦ä¸ããï¼ã¿ããã¼ã§ã¯ã¿ãæåãæ¿å
¥ãã¾ãï¼ã
</p>
<textarea id="code" class="playable-code" style="height: 290px; width: 95%">
const list = document.querySelector('.output ul');
list.textContent = "";
const greetings = ['Happy Birthday!',
'Merry Christmas my love',
'A happy Christmas to all the family',
'You\'re all I want for Christmas',
'Get well soon'];
for (const greeting of greetings) {
// æ¤æ»æ¡ä»¶ã¯ä¸è¨ã®è¡ã®æ¬å¼§ã®ä¸ã«å
¥ãã
// ç¾å¨ãããã®ã¨ç½®ãæããå¿
è¦ãããã¾ã
if (greeting) {
const listItem = document.createElement('li');
listItem.textContent = greeting;
list.appendChild(listItem);
}
}
</textarea>
<div class="playable-buttons">
<input id="reset" type="button" value="ãªã»ãã" />
<input id="solution" type="button" value="çããè¦ã" />
</div>
html {
font-family: sans-serif;
}
h2 {
font-size: 16px;
}
.a11y-label {
margin: 0;
text-align: right;
font-size: 0.7rem;
width: 98%;
}
body {
margin: 10px;
background: #f5f9fa;
}
const textarea = document.getElementById("code");
const reset = document.getElementById("reset");
const solution = document.getElementById("solution");
let code = textarea.value;
let userEntry = textarea.value;
function updateCode() {
eval(textarea.value);
}
reset.addEventListener("click", () => {
textarea.value = code;
userEntry = textarea.value;
solutionEntry = jsSolution;
solution.value = "çããè¦ã";
updateCode();
});
solution.addEventListener("click", () => {
if (solution.value === "çããè¦ã") {
textarea.value = solutionEntry;
solution.value = "çããé ã";
} else {
textarea.value = userEntry;
solution.value = "çããè¦ã";
}
updateCode();
});
const jsSolution = `const list = document.querySelector('.output ul');
list.textContent = "";
const greetings = [
'Happy Birthday!',
'Merry Christmas my love',
'A happy Christmas to all the family',
'You\\'re all I want for Christmas',
'Get well soon',
];
for (const greeting of greetings) {
// æ¤æ»æ¡ä»¶ã¯ä¸è¨ã®è¡ã®æ¬å¼§ã®ä¸ã«å
¥ãã
// ç¾å¨ãããã®ã¨ç½®ãæããå¿
è¦ãããã¾ã
if (greeting.includes('Christmas')) {
const listItem = document.createElement('li');
listItem.textContent = greeting;
list.appendChild(listItem);
}
}`;
let solutionEntry = jsSolution;
textarea.addEventListener("input", updateCode);
window.addEventListener("load", updateCode);
// ã¿ããã¼ã§ããã¹ãã¨ãªã¢ããæãã¦ãã¾ãã®ãé²ãã
// 代ããã«ã«ã¼ã½ã«ä½ç½®ã«ã¿ãæåãæ¿å
¥ãã
textarea.onkeydown = (e) => {
if (e.code === "Tab") {
e.preventDefault();
insertAtCaret("\t");
}
if (e.code === "Escape") {
textarea.blur();
}
};
function insertAtCaret(text) {
const scrollPos = textarea.scrollTop;
let caretPos = textarea.selectionStart;
const front = textarea.value.substring(0, caretPos);
const back = textarea.value.substring(
textarea.selectionEnd,
textarea.value.length,
);
textarea.value = front + text + back;
caretPos += text.length;
textarea.selectionStart = caretPos;
textarea.selectionEnd = caretPos;
textarea.focus();
textarea.scrollTop = scrollPos;
}
// ã¦ã¼ã¶ã¼ãããã¹ãã¨ãªã¢ã®ã³ã¼ããæ¸ãæãã度㫠userCode ãæ¯åæ´æ°ãã
textarea.onkeyup = () => {
// è§£çã§ã¯ãªããã¦ã¼ã¶ã¼ã³ã¼ãã表示ããã¦ããã¨ãã ãç¶æ
ãä¿åãããã®ã§ã
// è§£çãã¦ã¼ã¶ã¼ã³ã¼ãã䏿¸ããã¦ä¿åããããã¨ãé²ã
if (solution.value === "çããè¦ã") {
userEntry = textarea.value;
} else {
solutionEntry = textarea.value;
}
updateCode();
};
åèªã®æåã®æåã大æåã«ç´ã
ãã®èª²é¡ã§ã¯ã¤ã®ãªã¹ã®é½å¸åã顿ã«ãã¾ããã¨ããããåèªã®å¤§æåã¨å°æåããã¡ããã¡ãã«ãªã£ã¦ãã¾ããããã§æåã®æåã大æåã«ããæ®ãããã¹ã¦å°æåã«ãã¦ã¿ã¾ããããããããæé ã§ãã£ã¦ã¿ã¾ãã
city
ã«æ ¼ç´ããã¦ããæååå
¨ä½ãå°æåã«å¤æããæ°ãã夿°ã«æ ¼ç´ãã¾ããresult
ã®å¤ããcity
ã§ã¯ãªãæçµçµæã¨çãããªãããã«å¤æ´ãã¾ããã¡ã¢: ãã³ã â æååã¡ã½ããã®å¼æ°ã¯æååãªãã©ã«ã§ããå¿ è¦ã¯ãªãã夿°ã§ãã£ã¦ããã¡ã½ãããå¼ã³åºã夿°ã§ãã£ã¦ããã¾ãã¾ããã
<h2>åºåçµæ</h2>
<div class="output" style="min-height: 125px;">
<ul></ul>
</div>
<h2>ã³ã¼ãã¨ãã£ã¿ã¼</h2>
<p class="a11y-label">
ã³ã¼ãã¨ãã£ã¿ã¼ããæããã«ã¯ Esc ãã¼ãæ¼ãã¦ä¸ããï¼ã¿ããã¼ã§ã¯ã¿ãæåãæ¿å
¥ãã¾ãï¼ã
</p>
<textarea id="code" class="playable-code" style="height: 250px; width: 95%">
const list = document.querySelector('.output ul');
list.textContent = "";
const cities = ['lonDon', 'ManCHESTer', 'BiRmiNGHAM', 'liVERpoOL'];
for (const city of cities) {
// ãã®ä¸ã«ã³ã¼ããæ¸ãã¦ä¸ãã
const result = city;
const listItem = document.createElement('li');
listItem.textContent = result;
list.appendChild(listItem);
}
</textarea>
<div class="playable-buttons">
<input id="reset" type="button" value="ãªã»ãã" />
<input id="solution" type="button" value="çããè¦ã" />
</div>
html {
font-family: sans-serif;
}
h2 {
font-size: 16px;
}
.a11y-label {
margin: 0;
text-align: right;
font-size: 0.7rem;
width: 98%;
}
body {
margin: 10px;
background: #f5f9fa;
}
const textarea = document.getElementById("code");
const reset = document.getElementById("reset");
const solution = document.getElementById("solution");
let code = textarea.value;
let userEntry = textarea.value;
function updateCode() {
eval(textarea.value);
}
reset.addEventListener("click", function () {
textarea.value = code;
userEntry = textarea.value;
solutionEntry = jsSolution;
solution.value = "çããè¦ã";
updateCode();
});
solution.addEventListener("click", function () {
if (solution.value === "çããè¦ã") {
textarea.value = solutionEntry;
solution.value = "çããé ã";
} else {
textarea.value = userEntry;
solution.value = "çããè¦ã";
}
updateCode();
});
const jsSolution = `const list = document.querySelector('.output ul');
list.textContent = "";
const cities = ['lonDon', 'ManCHESTer', 'BiRmiNGHAM', 'liVERpoOL'];
for (const city of cities) {
// ãã®ä¸ã«ã³ã¼ããæ¸ãã¦ä¸ãã
const lower = city.toLowerCase();
const firstLetter = lower.slice(0,1);
const capitalized = lower.replace(firstLetter,firstLetter.toUpperCase());
const result = capitalized;
const listItem = document.createElement('li');
listItem.textContent = result;
list.appendChild(listItem);
}`;
let solutionEntry = jsSolution;
textarea.addEventListener("input", updateCode);
window.addEventListener("load", updateCode);
// ã¿ããã¼ã§ããã¹ãã¨ãªã¢ããæãã¦ãã¾ãã®ãé²ãã
// 代ããã«ã«ã¼ã½ã«ä½ç½®ã«ã¿ãæåãæ¿å
¥ãã
textarea.onkeydown = function (e) {
if (e.code === "Tab") {
e.preventDefault();
insertAtCaret("\t");
}
if (e.code === "Escape") {
textarea.blur();
}
};
function insertAtCaret(text) {
const scrollPos = textarea.scrollTop;
let caretPos = textarea.selectionStart;
const front = textarea.value.substring(0, caretPos);
const back = textarea.value.substring(
textarea.selectionEnd,
textarea.value.length,
);
textarea.value = front + text + back;
caretPos += text.length;
textarea.selectionStart = caretPos;
textarea.selectionEnd = caretPos;
textarea.focus();
textarea.scrollTop = scrollPos;
}
// ã¦ã¼ã¶ã¼ãããã¹ãã¨ãªã¢ã®ã³ã¼ããæ¸ãæãã度㫠userCode ãæ¯åæ´æ°ãã
textarea.onkeyup = function () {
// ã¦ã¼ã¶ã¼ã®ã³ã¼ãã表示ããã¦ããã¨ãã®ã¿ç¶æ
ãä¿åãã
// çãã®ã³ã¼ãã§ã¦ã¼ã¶ã¼ã³ã¼ãã䏿¸ããããªãããã«ãã
if (solution.value === "çããè¦ã") {
userEntry = textarea.value;
} else {
solutionEntry = textarea.value;
}
updateCode();
};
æ¢åã®é¨åããæ°ããæååã使ãã
æå¾ã®èª²é¡ã§ã¯ãåã¤ã³ã°ã©ã³ãã®é§ ã«é¢ããæ å ±ãå ¥ã£ã¦ããæååãæ ¼ç´ãã¦ããé åãæ±ãã¾ãããã®æååã«ã¯ãã¼ã¿é ç®ã¨ãã¦ãã¢ã«ãã¡ããã 3 æåã®é§ ã³ã¼ããæ¬¡ã«ã³ã³ãã¥ã¼ã¿ã¼èªã¿åãç¨ã®ãã¼ã¿ã次ã«ã»ãã³ãã³ãããã¦äººéãèªããé§ åãå ¥ã£ã¦ãã¾ããä¾ãã°ãã®ããã«ãªãã¾ãã
MAN675847583748sjt567654;Manchester Piccadilly
é§ ã³ã¼ãã¨é§ åãæ½åºãããããæååã«ã¾ã¨ãã¦ãã®ãããªå½¢ã«ãã¾ãã
MAN: Manchester Piccadilly
ãã®ããã«ããã°ã©ã ãã¦ã¿ã¾ãããã
input
夿°ã§ã¯ãªãããã®æçµçµæã result
夿°ã®å¤ã«ä»£å
¥ãããããä¿®æ£ãã¾ãã<h2>åºåçµæ</h2>
<div class="output" style="min-height: 125px;">
<ul></ul>
</div>
<h2>ã³ã¼ãã¨ãã£ã¿ã¼</h2>
<p class="a11y-label">
ã³ã¼ãã¨ãã£ã¿ã¼ããæããã«ã¯ Esc ãã¼ãæ¼ãã¦ä¸ããï¼ã¿ããã¼ã§ã¯ã¿ãæåãæ¿å
¥ãã¾ãï¼ã
</p>
<textarea id="code" class="playable-code" style="height: 285px; width: 95%">
const list = document.querySelector('.output ul');
list.textContent = "";
const stations = ['MAN675847583748sjt567654;Manchester Piccadilly',
'GNF576746573fhdg4737dh4;Greenfield',
'LIV5hg65hd737456236dch46dg4;Liverpool Lime Street',
'SYB4f65hf75f736463;Stalybridge',
'HUD5767ghtyfyr4536dh45dg45dg3;Huddersfield'];
for (const station of stations) {
// ãã®ä¸ã«ã³ã¼ããæ¸ãã¦ãã ãã
const result = station;
const listItem = document.createElement('li');
listItem.textContent = result;
list.appendChild(listItem);
}
</textarea>
<div class="playable-buttons">
<input id="reset" type="button" value="ãªã»ãã" />
<input id="solution" type="button" value="çããè¦ã" />
</div>
html {
font-family: sans-serif;
}
h2 {
font-size: 16px;
}
.a11y-label {
margin: 0;
text-align: right;
font-size: 0.7rem;
width: 98%;
}
body {
margin: 10px;
background: #f5f9fa;
}
const textarea = document.getElementById("code");
const reset = document.getElementById("reset");
const solution = document.getElementById("solution");
let code = textarea.value;
let userEntry = textarea.value;
function updateCode() {
eval(textarea.value);
}
reset.addEventListener("click", function () {
textarea.value = code;
userEntry = textarea.value;
solutionEntry = jsSolution;
solution.value = "çããè¦ã";
updateCode();
});
solution.addEventListener("click", function () {
if (solution.value === "çããè¦ã") {
textarea.value = solutionEntry;
solution.value = "çããé ã";
} else {
textarea.value = userEntry;
solution.value = "çããè¦ã";
}
updateCode();
});
const jsSolution = `const list = document.querySelector('.output ul');
list.textContent = '';
const stations = ['MAN675847583748sjt567654;Manchester Piccadilly',
'GNF576746573fhdg4737dh4;Greenfield',
'LIV5hg65hd737456236dch46dg4;Liverpool Lime Street',
'SYB4f65hf75f736463;Stalybridge',
'HUD5767ghtyfyr4536dh45dg45dg3;Huddersfield'];
for (const station of stations) {
// ãã®ä¸ã«ã³ã¼ããæ¸ãã¦ãã ãã
const code = station.slice(0,3);
const semiColon = station.indexOf(';');
const name = station.slice(semiColon + 1);
const result = \`\${code}: \${name}\`;
const listItem = document.createElement('li');
listItem.textContent = result;
list.appendChild(listItem);
}`;
let solutionEntry = jsSolution;
textarea.addEventListener("input", updateCode);
window.addEventListener("load", updateCode);
// ã¿ããã¼ã§ããã¹ãã¨ãªã¢ããæãã¦ãã¾ãã®ãé²ãã
// 代ããã«ã«ã¼ã½ã«ä½ç½®ã«ã¿ãæåãæ¿å
¥ãã
textarea.onkeydown = function (e) {
if (e.code === "Tab") {
e.preventDefault();
insertAtCaret("\t");
}
if (e.code === "Escape") {
textarea.blur();
}
};
function insertAtCaret(text) {
const scrollPos = textarea.scrollTop;
let caretPos = textarea.selectionStart;
const front = textarea.value.substring(0, caretPos);
const back = textarea.value.substring(
textarea.selectionEnd,
textarea.value.length,
);
textarea.value = front + text + back;
caretPos += text.length;
textarea.selectionStart = caretPos;
textarea.selectionEnd = caretPos;
textarea.focus();
textarea.scrollTop = scrollPos;
}
// ã¦ã¼ã¶ã¼ãããã¹ãã¨ãªã¢ã®ã³ã¼ããæ¸ãæãã度㫠userCode ãæ¯åæ´æ°ãã
textarea.onkeyup = function () {
// ã¦ã¼ã¶ã¼ã®ã³ã¼ãã表示ããã¦ããã¨ãã®ã¿ç¶æ
ãä¿åãã
// çãã®ã³ã¼ãã§ã¦ã¼ã¶ã¼ã³ã¼ãã䏿¸ããããªãããã«ãã
if (solution.value === "çããè¦ã") {
userEntry = textarea.value;
} else {
solutionEntry = textarea.value;
}
updateCode();
};
ã¹ãã«ãã¹ã
ãã®è¨äºã®æå¾ã«éãã¾ããããæã大åãªæ å ±ãè¦ãã¦ãã¾ããï¼æ¬¡ã«é²ãåã«ããã®æ å ±ã身ã«ä»ãããã©ããã確èªãããã¹ããããã¾ããã¹ãã«ãã¹ã: æååãè¦ã¦ãã ããã
çµè«ããã°ã©ãã³ã°ãç¹ã« JavaScript ã§ã¯åèªãæãå¦çã§ããããã«ãªããã¨ã大äºã§ããã¨ããç¾å®ããéãããã¨ã¯ã§ãã¾ãããããã¯ã¦ã§ããµã¤ãã¯äººã¨ã®ã³ãã¥ãã±ã¼ã·ã§ã³ããã¹ã¦ã¨ãªãããã§ãããã®è¨äºã§ã¯ãæååãå¦çããã®ã«å½é¢ç¥ã£ã¦ããã¹ãåºç¤ã解説ãã¾ãããä»å¾ãã£ã¨è¤éãªãããã¯ã«é²ãã§è¡ãã¨ãã«å½¹ç«ã¤ã¯ãã§ããæ¬¡ã«ãé åãè¦ã¦ã¿ã¾ããéè¦ãªãã¼ã¿åã®ãã¡ãçæéã§æ¼ããã¦ããã¹ãæå¾ã® 1 ã¤ã§ãã
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4