Skip to content

Instantly share code, notes, and snippets.

@azass
Last active February 8, 2025 08:56
Show Gist options
  • Save azass/22c50617e815ac67400853556d88998b to your computer and use it in GitHub Desktop.
Save azass/22c50617e815ac67400853556d88998b to your computer and use it in GitHub Desktop.
置換エディタ
<!DOCTYPE html>
<html>
<head>
<title>テキストファイル置換ツール</title>
</head>
<body>
<input type="file" id="fileInput">
<div id="replacements"></div>
<button onclick="replaceAndDownload()">置換してダウンロード</button>
<script>
function addReplacementInput() {
const replacementsDiv = document.getElementById('replacements');
const newDiv = document.createElement('div');
newDiv.innerHTML = '<input type="text" placeholder="置換前"> <input type="text" placeholder="置換後">';
replacementsDiv.appendChild(newDiv);
}
function replaceAndDownload() {
const fileInput = document.getElementById('fileInput');
const file = fileInput.files[0];
const reader = new FileReader();
reader.onload = (event) => {
const text = event.target.result;
const replacementsDiv = document.getElementById('replacements');
const replacements = Array.from(replacementsDiv.querySelectorAll('div'))
.map(div => div.querySelectorAll('input'))
.map(inputs => ({
search: inputs[0].value,
replace: inputs[1].value
}));
let replacedText = text;
replacements.forEach(replacement => {
replacedText = replacedText.replaceAll(replacement.search, replacement.replace);
});
// ダウンロード
const blob = new Blob([replacedText], { type: 'text/plain' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'replaced.txt';
a.click();
URL.revokeObjectURL(url);
};
reader.readAsText(file);
}
// 置換入力フォームの追加ボタン
const addButton = document.createElement('button');
addButton.textContent = '置換ペアを追加';
addButton.onclick = addReplacementInput;
document.body.appendChild(addButton);
// 初期状態で1つの置換入力フォームを追加
addReplacementInput();
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment