📜 プログラム
/**
* シンプルな四則演算計算機
* 足し算、引き算、掛け算、割り算を確実に処理
*/
function calculate(input) {
try {
if (!input.trim()) throw new Error('入力してください');
// 日本語演算子を標準に変換
let sanitizedInput = input.replace(/×/g, '*').replace(/÷/g, '/');
// 許可する文字: 数字、演算子、小数点、括弧
if (/[^0-9+\-*/(). ]/.test(sanitizedInput)) {
throw new Error('無効な文字が含まれています');
}
// evalを使用(安全性を確保済み)
let result = eval(sanitizedInput);
if (result === undefined || result === null || !isFinite(result)) {
throw new Error('無効な計算');
}
// 小数点以下2桁に丸める
return Number(result).toFixed(2);
} catch (e) {
return `エラー: ${e.message || '入力を確認してください'}`;
}
}
/**
* 入力検証
*/
function validateInput(input) {
return input.trim() && !/[^0-9+\-*/(). ]/.test(
input.replace(/×/g, '*').replace(/÷/g, '/')
);
}
/**
* ボタンクリック時のスパークルエフェクト
*/
function addSparkle(e) {
for (let i = 0; i < 5; i++) {
const sparkle = document.createElement('div');
sparkle.className = 'sparkle';
sparkle.style.left = (e.clientX + (Math.random() - 0.5) * 30) + 'px';
sparkle.style.top = (e.clientY + (Math.random() - 0.5) * 30) + 'px';
document.body.appendChild(sparkle);
setTimeout(() => sparkle.remove(), 800);
}
}
/**
* 背景色変更
*/
function changeBackground(color1, color2) {
document.querySelector('.calculator').style.background =
`linear-gradient(45deg, ${color1}, ${color2})`;
}
/**
* メモ追加
*/
function addToMemo(input, result) {
const memoList = document.getElementById('memo-list');
const li = document.createElement('li');
li.className = 'memo-item';
li.innerHTML = `${input} = ${result}`;
memoList.prepend(li);
}
/**
* メモクリア
*/
function clearMemo() {
document.getElementById('memo-list').innerHTML = '';
}
/**
* クリップボードにコピー
*/
function copyToClipboard(text) {
navigator.clipboard.writeText(text);
}
🔍 仕組み
キラキラ計算機は四則演算(足し算、引き算、掛け算、割り算)に特化。直接入力で数式を打ち込み、結果を右のメモに保存(結果のみコピー)。エラーハンドリングを強化し、シンプルで安定した動作を保証します。
📚 使える数式例
例: 2 + 3, 5 * 4, 10 / 2, (3 + 5) * 2
💡 ヒント
ボタンまたは直接入力で数式を組み立て、Enterキーで計算。メモは結果のみコピーできます。キラキラデザインで楽しく、確実に計算!
📝 メモ
⚠️ 答えだけコピーされます