From 76bf0be7d51a7395ebca3c62c44c64ca48a7f329 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=AE=A2?= <115603590@qq.com> Date: Sun, 4 Jan 2026 14:28:38 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8D=A2=E8=A1=8C?= =?UTF-8?q?=E7=AC=A6=E4=B8=A2=E5=A4=B1=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/text-reverser/app.html | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/tools/text-reverser/app.html b/tools/text-reverser/app.html index d8409d4..7a1f1e6 100644 --- a/tools/text-reverser/app.html +++ b/tools/text-reverser/app.html @@ -253,15 +253,9 @@

文本反转工具

if (mode.value === 'chars') { output.value = value.split('').reverse().join(''); } else if (mode.value === 'lines') { - output.value = value.split(/ - ? - /).reverse().join(' - '); + output.value = value.split(/\r?\n/).reverse().join('\n'); } else { - output.value = value.split(/ - ? - /).map(line => line.split('').reverse().join('')).join(' - '); + output.value = value.split(/\r?\n/).map(line => Array.from(line).reverse().join('')).join('\n'); } } From 7770ece1a9999e9982aefb505e260d73d621d8b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=AE=A2?= <115603590@qq.com> Date: Sun, 4 Jan 2026 14:53:28 +0800 Subject: [PATCH 2/4] =?UTF-8?q?Fix=20=E4=BF=AE=E5=A4=8D=E4=B8=A2=E5=A4=B1?= =?UTF-8?q?=E7=9A=84=E6=8D=A2=E8=A1=8C=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/line-ending-converter/app.html | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/tools/line-ending-converter/app.html b/tools/line-ending-converter/app.html index 911335d..7e1f6b1 100644 --- a/tools/line-ending-converter/app.html +++ b/tools/line-ending-converter/app.html @@ -240,17 +240,12 @@

行尾符转换器

const linesEl = document.getElementById('lines'); function normalize(value) { - return value.replace(/ - /g, ' - ').replace(/ - /g, ' - '); + return value.replace(/\r\n/g, '\n').replace(/\r/g, '\n'); } function updateLines(value) { const normalized = normalize(value); - linesEl.textContent = normalized ? normalized.split(' - ').length : '0'; + linesEl.textContent = normalized ? normalized.split('\n').length : '0'; } function convertToLf() { @@ -261,9 +256,7 @@

行尾符转换器

function convertToCrlf() { const normalized = normalize(input.value); - output.value = normalized.replace(/ - /g, ' - '); + output.value = normalized.replace(/\n/g, '\r\n'); updateLines(normalized); } From d3b05f9c8a3f59b2a05ba64d500d050439a36981 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=AE=A2?= <115603590@qq.com> Date: Mon, 5 Jan 2026 10:24:50 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DtimeHex.substring(?= =?UTF-8?q?12,=2015)=E4=B8=BA=E7=A9=BA=EF=BC=8C=E5=AF=BC=E8=87=B4UUIDv1?= =?UTF-8?q?=E7=BC=BA=E5=B0=914=E4=BD=8D=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/uuid-generator/app.html | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/tools/uuid-generator/app.html b/tools/uuid-generator/app.html index e5144ab..9a92940 100644 --- a/tools/uuid-generator/app.html +++ b/tools/uuid-generator/app.html @@ -376,17 +376,25 @@

生成结果

return v.toString(16); }); } else if (version === '1') { - // UUID v1 simulation (timestamp-based) - const timestamp = Date.now(); - const timeHex = timestamp.toString(16).padStart(12, '0'); - const clockSeq = Math.floor(Math.random() * 16384).toString(16).padStart(4, '0'); - const node = Math.floor(Math.random() * 281474976710656).toString(16).padStart(12, '0'); - - return timeHex.substring(0, 8) + '-' + - timeHex.substring(8, 12) + '-1' + - timeHex.substring(12, 15) + '-' + - clockSeq.substring(0, 1) + '0' + clockSeq.substring(1) + '-' + - node; + // UUID v1(RFC 4122 正确实现) + const UUID_EPOCH = 12219292800000n; // ms between 1582-10-15 and 1970-01-01 + const now = BigInt(Date.now()); + const time100ns = (now + UUID_EPOCH) * 10000n; + const timeLow = Number(time100ns & 0xffffffffn); + const timeMid = Number((time100ns >> 32n) & 0xffffn); + const timeHi = Number((time100ns >> 48n) & 0x0fffn) | 0x1000; // version = 1 + const clockSeq = Math.floor(Math.random() * 0x3fff); + const clockSeqHi = (clockSeq >> 8) | 0x80; // variant = 10xx + const clockSeqLow = clockSeq & 0xff; + const node = crypto.getRandomValues(new Uint8Array(6)); + return ( + timeLow.toString(16).padStart(8, '0') + '-' + + timeMid.toString(16).padStart(4, '0') + '-' + + timeHi.toString(16).padStart(4, '0') + '-' + + clockSeqHi.toString(16).padStart(2, '0') + + clockSeqLow.toString(16).padStart(2, '0') + '-' + + [...node].map(b => b.toString(16).padStart(2, '0')).join('') + ); } return generateUUID('4'); } From 4d18d4236e99f79bbf07d7bff6b5961b1d3a78ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=AE=A2?= <115603590@qq.com> Date: Mon, 5 Jan 2026 16:20:01 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix:=201.=E4=BF=AE=E5=A4=8D=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E9=94=99=E8=AF=AF=EF=BC=9B=202.=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E8=BF=9C=E7=A8=8B=E8=B5=84=E6=BA=90=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9B=A0onerror=E7=9A=84=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E5=86=99=E6=B3=95=E5=AF=BC=E8=87=B4=E5=86=85=E7=BD=91=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E6=97=B6=E6=97=A0=E6=B3=95=E5=88=87=E6=8D=A2=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E6=9C=AC=E5=9C=B0=E9=9D=99=E6=80=81=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #8 --- index.html | 8 ++++---- reference.html | 2 +- tools-rank.html | 12 ++++++------ tools/base32-decode/index.html | 2 +- tools/base32-encode/index.html | 2 +- tools/base58-decode/index.html | 2 +- tools/base58-encode/index.html | 2 +- tools/base64-encode/index.html | 4 ++-- tools/base64url-decode/index.html | 2 +- tools/base64url-encode/index.html | 2 +- tools/binary-decode/index.html | 2 +- tools/binary-encode/index.html | 2 +- tools/caesar-cipher/index.html | 2 +- tools/color-picker/index.html | 4 ++-- tools/csv-to-tsv/index.html | 2 +- tools/csv-to-yaml/index.html | 2 +- tools/gitignore-generator/index.html | 2 +- tools/hex-decode/index.html | 2 +- tools/hex-encode/index.html | 2 +- tools/html-formatter/app.html | 2 +- tools/html-minifier/index.html | 2 +- tools/html-to-markdown/index.html | 2 +- tools/html-to-text/index.html | 2 +- tools/image-compressor/app.html | 4 ++-- tools/js-formatter/app.html | 2 +- tools/js-minifier/index.html | 2 +- tools/json-minifier/index.html | 2 +- tools/json-sorter/index.html | 2 +- tools/json-to-markdown/index.html | 2 +- tools/json-to-tsv/index.html | 2 +- tools/json-to-xml/index.html | 2 +- tools/json-to-yaml/index.html | 6 +++--- tools/jwt-generator/index.html | 2 +- tools/markdown-to-text/index.html | 2 +- tools/meta-tags-generator/index.html | 2 +- tools/morse-decode/index.html | 2 +- tools/morse-encode/index.html | 2 +- tools/nanoid-generator/index.html | 2 +- tools/password-generator/index.html | 4 ++-- tools/qr-generator/app.html | 2 +- tools/qr-generator/index.html | 4 ++-- tools/random-number/index.html | 2 +- tools/random-picker/index.html | 2 +- tools/regex-tester/index.html | 4 ++-- tools/robots-txt-generator/index.html | 2 +- tools/rot13/index.html | 2 +- tools/sitemap-generator/index.html | 2 +- tools/sql-formatter/app.html | 2 +- tools/sql-minifier/index.html | 2 +- tools/text-to-html/index.html | 2 +- tools/tsv-to-csv/index.html | 2 +- tools/tsv-to-json/index.html | 2 +- tools/ulid-generator/index.html | 2 +- tools/unicode-escape/index.html | 2 +- tools/unicode-unescape/index.html | 2 +- tools/url-encode/index.html | 4 ++-- tools/xml-formatter/index.html | 2 +- tools/xml-minifier/index.html | 2 +- tools/xml-to-yaml/index.html | 2 +- tools/yaml-formatter/index.html | 2 +- tools/yaml-minifier/index.html | 2 +- tools/yaml-to-csv/index.html | 2 +- tools/yaml-to-json/index.html | 2 +- tools/yaml-to-xml/index.html | 2 +- 64 files changed, 81 insertions(+), 81 deletions(-) diff --git a/index.html b/index.html index c95edd1..2a57daa 100644 --- a/index.html +++ b/index.html @@ -19,7 +19,7 @@ - + - +