网站首页 > 技术文章 正文
很多视频制作软件或者文字转语音每次都有500个或者800个字数限制。
长文章用人工分割字数费时费力,我在网上找半天也没有相应的软件或者在线网页。
我搞了一段代码,可以解决这个痛点。复制到记事本,另存为html文件文件就行,手机和电脑都可以用。执行效果如上图所示。代码如下:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>文本分割统计</title>
</head>
<body>
<h1>文本分割统计</h1>
<p>
<textarea id="text-input" rows="10" cols="50"></textarea>
</p>
<p>
<button id="count-btn">统计字数</button>
<button id="split-btn">分割文本</button>
</p>
<p>
<label for="split-num">每部分字数:</label>
<input type="number" id="split-num" value="450">
</p>
<div id="result"></div>
<script>
const textInput = document.getElementById('text-input');
const countBtn = document.getElementById('count-btn');
const splitBtn = document.getElementById('split-btn');
const splitNumInput = document.getElementById('split-num');
const resultDiv = document.getElementById('result');
countBtn.addEventListener('click', () => {
const text = textInput.value;
const wordCount = text.length;
alert(`文本总字数:${wordCount}`);
});
splitBtn.addEventListener('click', () => {
const text = textInput.value;
const splitNum = parseInt(splitNumInput.value);
const parts = splitText(text, splitNum);
resultDiv.innerHTML = '';
for (let i = 0; i < parts.length; i++) {
const part = parts[i];
const copyBtn = document.createElement('button');
copyBtn.innerText = '复制';
copyBtn.addEventListener('click', () => {
navigator.clipboard.writeText(part);
alert('复制成功!');
});
resultDiv.appendChild(document.createElement('p')).appendChild(document.createTextNode(part));
resultDiv.appendChild(copyBtn);
}
});
function splitText(text, splitNum) {
const parts = [];
let start = 0;
while (start < text.length) {
const end = Math.min(start + splitNum, text.length);
parts.push(text.substring(start, end));
start = end;
}
return parts;
}
</script>
</body>
</html>
- 上一篇: Vue基础入门,第21节,表单数据的收集与提交
- 下一篇: 鸿蒙网络编程系列2-UDP回声服务器的实现
猜你喜欢
- 2024-11-17 fastapi+vue3文件上传(vue ftp上传)
- 2024-11-17 从零开始构建PDF阅读器(最简单的pdf阅读器)
- 2024-11-17 Dooring可视化之从零实现动态表单设计器
- 2024-11-17 在 FastAPI 中处理表单和用户输入:综合指南
- 2024-11-17 Laravel9表单的验证(validate表单验证)
- 2024-11-17 第63节 Form表单-Web前端开发之JavaScript-王唯
- 2024-11-17 Gateway结合Sentinel1.8限流熔断及自定义异常
- 2024-11-17 手机网站常见问题总结(手机网站出现错误怎么办)
- 2024-11-17 CSS实现去除Input框默认样式的详细教程
- 2024-11-17 企业必备实战之Sentinel规则Nacos持久化
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-