diff options
| author | Charles Cabergs <me@cacharle.xyz> | 2020-10-30 11:15:06 +0100 |
|---|---|---|
| committer | Charles Cabergs <me@cacharle.xyz> | 2020-10-30 11:15:06 +0100 |
| commit | b0723c4bc8e7b23f8534cc209ab0a20ddcc257ed (patch) | |
| tree | e2d1e5858290b3b2832dcefe7f8b5666fb4d0972 /utils/rot13/script.js | |
| parent | 8709793284d04e31822688e83abc393dbfe13b26 (diff) | |
| download | cacharle.xyz-b0723c4bc8e7b23f8534cc209ab0a20ddcc257ed.tar.gz cacharle.xyz-b0723c4bc8e7b23f8534cc209ab0a20ddcc257ed.tar.bz2 cacharle.xyz-b0723c4bc8e7b23f8534cc209ab0a20ddcc257ed.zip | |
Added rot13 util
Diffstat (limited to 'utils/rot13/script.js')
| -rw-r--r-- | utils/rot13/script.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/utils/rot13/script.js b/utils/rot13/script.js new file mode 100644 index 0000000..efa408b --- /dev/null +++ b/utils/rot13/script.js @@ -0,0 +1,31 @@ +input = document.getElementById("rot13-input") +output = document.getElementById("rot13-output") +shift_range = document.getElementById("rot13-shift") +shift_output = document.getElementById("rot13-shift-output") + +const letters_low = [ + "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", + "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" +] + +const letters_up = letters_low.map(c => c.toUpperCase()) + +function rotate(text, shift) { + return text.split("").map(c => { + if (/[a-zA-Z]/.test(c)) { + letters = /[a-z]/.test(c) ? letters_low : letters_up + return letters[(letters.indexOf(c) + shift) % 26] + } + return c + }).join("") +} + +function update() { + output.value = rotate(input.value, Number(shift_range.value)) + shift_output.textContent = shift_range.value +} + +input.addEventListener("keyup", update) +shift_range.addEventListener("input", update) + +update() |
