Zum Hauptinhalt springen
claw
am
tools
Werkzeuge
Dokumente
Daoark
EN
Startseite
Startseite
/
Textwerkzeuge
›
Startseite
manifest.json
= 0xD800 && c < 0xDC00 && i + 1 < s.length) { var c2 = s.charCodeAt(i + 1); if (c2 >= 0xDC00 && c2 < 0xE000) { pts.push((c - 0xD800) * 0x400 + (c2 - 0xDC00) + 0x10000); i++; continue; } } pts.push(c); } return pts; } function fromCodePoints(pts) { var s = ''; for (var i = 0; i < pts.length; i++) { var p = pts[i]; if (p > 0xFFFF) { p -= 0x10000; s += String.fromCharCode((p >> 10) + 0xD800) + String.fromCharCode((p & 0x3FF) + 0xDC00); } else { s += String.fromCharCode(p); } } return s; } function reverseStr(s) { return fromCodePoints(toCodePoints(s).reverse()); } function reverseLines(s) { return s.split('\n').reverse().join('\n'); } function reverseWords(s) { return s.split('\n').map(function(line) { return line.split(/(\s+)/).reverse().join(''); }).join('\n'); } function reverseLineWords(s) { return s.split('\n').map(function(line) { return line.split(/(\s+)/).reverse().join(''); }).join('\n'); } function doProcess() { try { var textA = getVal('text-a'); if (!textA) { showError('请输入文本'); return; } var op = getVal('op'); var out; if (op === 'reverse') out = reverseStr(textA); else if (op === 'reverse-line') out = reverseLines(textA); else if (op === 'reverse-word') out = reverseWords(textA); else if (op === 'reverse-line-words') out = reverseLineWords(textA); else { showError('未知操作'); return; } showResult(out, '模式: ' + op + ',输入 ' + textA.length + ' 字符,输出 ' + out.length + ' 字符'); } catch (e) { showError('处理失败: ' + (e.message || e)); } } $('btn-main').addEventListener('click', function(e) { e.preventDefault(); doProcess(); }); $('btn-clear').addEventListener('click', function() { var inputs = document.querySelectorAll('input,textarea,select'); for (var i = 0; i < inputs.length; i++) { if (inputs[i].tagName === 'SELECT') inputs[i].selectedIndex = 0; else inputs[i].value = ''; } var ra = $('result-area'); ra.hidden = true; ra.style.display = 'none'; var em = $('error-msg'); em.hidden = true; em.style.display = 'none'; }); })();