js-利用blur使文本框自动控制格式

news/2024/11/14 21:53:00/

在 JavaScript 中,blur 是一个事件,它在一个元素失去焦点时触发。当用户从一个元素中移开或者将焦点转移到页面上的另一个元素时,该元素将触发 blur 事件。这个事件通常用于验证用户输入或执行其他与用户交互相关的操作。

假设我有个文本框,要求输入氨基酸序列,如下图所示:
在这里插入图片描述
失去焦点后,变成这种格式:
在这里插入图片描述
要求:

  1. 过滤非法字符
  2. 每组10个字符,组与组之间以空格分隔,每行6组
  3. 每行前面需要标明index

前端

<textarea rows="10" cols="100" required="required" id="input-sequence"placeholder="只接受20种氨基酸及'X',X代表未知氨基酸" style="text-indent: 0;font-family: monospace;">
</textarea>

js:

javascript">// nperg: 每组几个字符
// gperline: 每行几组
function groupString(str, nperg, gperline) {var result = '';var groups = Math.ceil(str.length / nperg); // 计算总共有多少组var linesize = nperg* gperline;for (var i = 0; i < groups; i++) {var startIndex = i * nperg;var endIndex = Math.min(startIndex + nperg, str.length); // 结束索引不能超过字符串长度var groupStr = str.substring(startIndex, endIndex); // 截取每组字符串if (i % gperline == 0) { // 左侧需要填数字result += String(i * nperg + 1).padStart(6, ' ') + ' ';}// 每组添加字符串和空格result += groupStr + ' ';if ((i + 1) % gperline === 0) { // 每6组换行result += '\n';}		}return result;
}$("#input-sequence").blur(function () {var tmpSeq;tmpSeq = $(this).val().replace(/[^ACDEFGHIKLMNPQRSTVWYX]+/ig, "").toUpperCase();$(this).val(groupString(tmpSeq, 10, 6))});

http://www.ppmy.cn/news/1426585.html

相关文章

Day13-C++基础之文件操作

文件操作 #include<iostream> #include<fstream> #include<string> using namespace std; ​ class Person{ public:char m_Name[64];int m_Age; }; ​ int main(){//文本文件操作 ​//写文件//1.包含头文件 fstream//2.创建流对象ofstream ofs;//3.指定打开…

中科院JCR期刊分区介绍

文章目录 1. 背景2. 简介3. 学科分类方法4. 分区表计算方法5. 分区指标说明5.1 IF5.2 3年平均IF5.3 CI 6. 中科院分区和JCR期刊分区有哪些异同&#xff1f;6.1 数据基础相同6.2 学科划分小类部分相同 1. 背景 SCI作为论文与引文分析的重要手段, 被国内各级科研管理部门所重视,…

Day31代码随想录贪心part01:455.分发饼干、376. 摆动序列(也可以动态规划)、53. 最大子序和(也可以动态规划)

Day31 贪心part01 455.分发饼干 题意&#xff1a;对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的饼干的最小尺寸&#xff1b;并且每块饼干 j&#xff0c;都有一个尺寸 s[j] 。如果 s[j] > g[i]&#xff0c;我们可以将这个饼干 j 分配给…

python使用redis存储时序数据

import redisdef ts_demo():"""时序数据存储RedisTimeSeries测试"""# 连接到Redisr redis.Redis(hostlocalhost, password"xxxx", port63790, db0)r1 r.ts()# print(r1.get("ts_key"))# print(r.exists(ts_key))# # 清空键…

DFS的例子

x星球的盛大节日为增加气氛&#xff0c;用30台机光器一字排开&#xff0c;向太空中打出光柱。安装调试的时候才发现&#xff0c;不知什么原因&#xff0c;相邻的两台激光器不能同时打开&#xff01;国王很想知道&#xff0c;在目前这种bug存在的情况下&#xff0c;一共能打出多…

乡政府管理系统|基于Springboot的乡政府管理系统设计与实现(源码+数据库+文档)

乡政府管理系统目录 目录 基于Springboot的乡政府管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户信息管理 2、活动信息管理 3、新闻类型管理 4、新闻动态管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推…

R语言入门:vegan包diversity()、simpson.unb()、fisher.alpha()、specnumber函数

1、简介 Shannon, Simpson, and Fisher diversity indices and species richness. 2、使用语法 diversity(x, index "shannon", groups, equalize.groups FALSE,MARGIN 1, base exp(1)) simpson.unb(x, inverse FALSE) fisher.alpha(x, MARGIN 1, ...) spec…

LLaMA3-70B: Meta AI 的最新自然语言处理模型

LLaMA-70B&#xff1a; Meta AI 的最新自然语言处理模型 近期&#xff0c;Meta AI 发布了其最新的自然语言处理模型 LLaMA-70B&#xff0c;这是一个基于 transformer 结构的语言模型&#xff0c;具有70亿个参数。LLaMA-70B 的发布标志着 Meta AI 在自然语言处理领域的又一重大突…