详细介绍:javascript文本长度检测与自动截取,用于标题长度检测
2025-09-17 20:27 tlnshuju 阅读(0) 评论(0) 收藏 举报实时检测的效果,比较友好。
设计思路
创建一个文本输入区域
实时显示当前文本长度和最大允许长度
当长度超过90时自动截取文本
提供视觉反馈(进度条和颜色提示)
实现代码
文本长度检测与截取工具
* {
box-sizing: border-box;
margin: 0;
padding: 0;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background: linear-gradient(135deg, #6a11cb 0%, #2575fc 100%);
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 20px;
}
.container {
background: white;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
width: 100%;
max-width: 600px;
padding: 30px;
}
h1 {
color: #2c3e50;
text-align: center;
margin-bottom: 25px;
font-weight: 600;
}
.input-container {
margin-bottom: 20px;
}
textarea {
width: 100%;
height: 150px;
padding: 15px;
border: 2px solid #e0e0e0;
border-radius: 8px;
font-size: 16px;
resize: vertical;
transition: border-color 0.3s;
}
textarea:focus {
outline: none;
border-color: #3498db;
}
.counter {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 15px;
color: #555;
}
.progress-container {
height: 8px;
background: #f0f0f0;
border-radius: 4px;
margin-top: 5px;
overflow: hidden;
}
.progress-bar {
height: 100%;
background: #3498db;
border-radius: 4px;
transition: width 0.3s, background 0.3s;
}
.warning {
color: #e74c3c;
font-weight: 500;
}
.rules {
background: #f8f9fa;
padding: 15px;
border-radius: 8px;
margin-top: 20px;
font-size: 14px;
color: #555;
}
文本长度检测与截取
当前长度: 0/90
计算规则: 汉字=3个单位,半角字符=1.5个单位,其他字符=2个单位
const textInput = document.getElementById('textInput');
const currentLengthElement = document.getElementById('currentLength');
const progressBar = document.getElementById('progressBar');
const warningText = document.getElementById('warningText');
// 计算字符串长度(汉字=3,半角字符=1.5,其他=2)
function calculateLength(str) {
let totalLength = 0;
for (let i = 0; i = 0x4E00 && charCode = 0x0000 && charCode = 0x4E00 && charCode = 0x0000 && charCode maxLength) {
break;
}
result += char;
currentLength += charLength;
}
return result;
}
// 更新界面显示
function updateDisplay() {
const text = textInput.value;
const length = calculateLength(text);
// 更新长度显示
currentLengthElement.textContent = length.toFixed(1);
// 更新进度条
const percentage = Math.min(100, (length / 90) * 100);
progressBar.style.width = percentage + '%';
// 更新警告文本和颜色
if (length > 90) {
currentLengthElement.className = 'warning';
progressBar.style.background = '#e74c3c';
warningText.textContent = '文本已超过限制,已自动截取';
warningText.className = 'warning';
// 截取文本
const truncatedText = truncateString(text, 90);
textInput.value = truncatedText;
// 更新显示为截取后的长度
const newLength = calculateLength(truncatedText);
currentLengthElement.textContent = newLength.toFixed(1);
progressBar.style.width = Math.min(100, (newLength / 90) * 100) + '%';
} else {
currentLengthElement.className = '';
progressBar.style.background = '#3498db';
warningText.textContent = '';
}
}
// 添加输入事件监听
textInput.addEventListener('input', updateDisplay);
// 初始化显示
updateDisplay();
通过代码能够直接运行!!~~~!!!
功能说明
实时长度计算:在输入或粘贴文本时,实时计算文本长度(汉字=3,半角字符=1.5,其他字符=2)
自动截取:当文本长度超过90时,自动截取文本到合适长度
视觉反馈:
进度条显示当前文本长度占比
颜色变化提示(蓝色正常,红色超过限制)
显示警告信息当文本超过限制时
使用方法
在文本框中输入或粘贴文本
观察实时长度计算和进度条变化
当长度超过90时,文本会自动截取到合适长度
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/906811.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
完整教程:一篇读懂Pormise!!【前端ES6】
完整教程:一篇读懂Pormise!!【前端ES6】2025-09-17 20:13
tlnshuju
阅读(0)
评论(0) 收藏
举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: blo…
93. 递归实现组合型枚举
93. 递归实现组合型枚举
if (sum + n - u < m) return;
如果当前记录的数据 加上 后面的所有可以被选的数据 时无法达到要求时终止
state记录了哪些数据被选,哪些没被选的
state | 1 << u 选择当前的数据,比如0101 -> 10101
#include <iostream>
using n…
Sort方法学习(伪代码记录)
Sort 方法总结
selectionSort(vector& a)
核心思想:选择最大/小的数移到最前/后
// 1. 计算数组长度// 2. 控制已排序部分的边界
for(i=0; i<n; i++){// 3. 在未排序部分(j到末尾)中寻找真正的maxfor(j=i+1, j<n; j++) find(max);// 3. 将最大的数放至数组头swap(…
深入解析:【每日一问】运算放大器与比较器有什么区别?
深入解析:【每日一问】运算放大器与比较器有什么区别?pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", mon…
9.17支配对问题专题总结
概括
每次查询一定范围内的点组成的点对中的最优值,而通过一些分析去减少有用点对的数量,这样子的有用点对称为 支配对
T1策略是将 \(a_i\) 相同的序列取出来单独考虑
固定 \(b_i<b_j,i<j\) 然后考虑能找出来一个序列 \(i,j1,j2,j3...\)
但是发现选 \(i,j2\) 不如选 \(…
开源收银体系_大型收银系统源码_OctShop
开源收银体系_大型收银系统源码_OctShoppre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…
完整教程:热力图是什么?三分钟学会热力图数据分析怎么做!
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
机器视觉检测中光源的作用以及分类 - 教程
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
XXL-JOB(2)
XXL-JOB(2)1、入门和集成<!-- xxl-job-core --><dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>2.5.0</version></dependency>
搭建控制台
XXL-JOB-ADMIN jar 本地启动,…
P9753 [CSP-S 2023] 消消乐
前置算法动态规划
hash哈希题目大意
给定一个字符串,可以将相邻两个相同的字符删除,然后合并成一个新序列。
例如:abba,可以先将两个 b 删除,然后合并成 aa,最后删除 a。
求出有多少个字串,最后可以将其变为空串,我们称之为合法的字串。
思路
看到数据范围,只能使用 \…
9.16 CSP-S模拟22 改题记录
HZOJ
写在前面
连着两天吃了两坨。。。好吧,那就一坨一坨地消化一下吧。话说如果这真是S组难度那我不真就废了?这场真是T1猜结论题,T2就来坨大的,不知道啥是二分图暴力都不会打。T3反正就是我是大春竹。T4上演忘记结论创造结论,然鹅实际上还是不会写。没有文件输入输,没有…
AT_agc058_b [AGC058B] Adjacent Chmax
转化为对某个区间染色,然后设 \(f_{i, j}\) 为前 \(i\) 种颜色染了 \([1, j]\) 的方案数,简单转移即可。
Jenkins CVE-2018-1000600漏洞利用与SSRF攻击分析
本文详细分析了Jenkins GitHub插件CVE-2018-1000600漏洞的利用方法,通过CSRF漏洞和权限缺失实现凭证窃取与完全响应SSRF攻击,包含PoC代码和影响版本范围说明。Jenkins - CVE-2018-1000600 PoC
来源博客文章
https://blog.orange.tw/2019/01/hacking-jenkins-part-1-play-with…
NOIP 集训日记(学术)
workwork学术版。
9.9
P4117 [Ynoi2018] 五彩斑斓的世界
分块神题。
拿到题以后发现不能直接做,然后你就开始观察。
设区间最大值为 \(maxn\) ,查询的数为 \(x\)
一个显然的性质:把所有小于等于 \(x\) 的数加上 \(x\) ,然后区间减 \(x\) ,得到的结果不变。然后我们思考一下…
linux中mysql如何远程连接
linux中mysql如何远程连接
两个步骤:
第一:让root允许远程登录
update user set host = % where user = root;第二:给予root用户最大数据库权限
grant all privileges on *.* to root@% identified by 123456;
flush privileges;实操:
[root@bogon ~]# mysql -uroot -p1234…
详细介绍:Python:OpenCV 教程——从传统视觉到深度学习:YOLOv8 与 OpenCV DNN 模块协同实现工业缺陷检测
详细介绍:Python:OpenCV 教程——从传统视觉到深度学习:YOLOv8 与 OpenCV DNN 模块协同实现工业缺陷检测pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", …
深入解析:PYcharm——pyqt音乐播放器
深入解析:PYcharm——pyqt音乐播放器pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important…