工作记录(JS向textarea添加固定内容、通过固定字符将字符串分割为数组)
第一个是在 textarea 输入框中添加固定的内容。
代码如下:
<textarea id="text" cols="30" rows="10"></textarea>
<br>
<button id="btn">添加公司</button>
var textareaIndex = 0;
$("#text").on('keydown',function(e){
textareaIndex = this.selectionStart 1;
if(e.keyCode == 8){
var starText,endText,replaceText;
var text = $(this).val();
var selectionIndex = this.selectionStart-1;
if(text[selectionIndex]==']'){
var result = rep(text,selectionIndex);
$(this).val(result.text);
this.selectionStart = this.selectionEnd = result.index;
return false;
}
}
})
$("#text").click(function(){
textareaIndex = this.selectionStart; // 获取光标所在下标
})
function rep(str,index){
var i = index,k='no';
while(i>0){
if(str[--i]=='['){
k = i;
break;
}
}
if(k=='no')k=index
return {text:str.substring(0,k) str.substring(index 1),index:k}
}
$('#btn').click(function(){
var text = $("#text").val();
var str = text.substring(0,textareaIndex);
var texts = str '[公司名称]' text.substring(textareaIndex,text.length);
$("#text").val(texts);
})
效果在此就不展示了。(不过到最后并不能满足大部分需求所以并没有使用这种方法,使用的是 HTML 5 的新属性 contenteditable)。
第二个是研究聊天发表情,是为了实现微信端和小程序端的互相通信,过程中碰到种种困难,尤其是小程序端,所以想到将带表情的内容改变成一个数组形式发送。
代码如下:
var str = '你好,#微笑;1。加油兄弟#握手;#的哈哈但是.#所属;';
function f(str){
var arr = [],tmp = '';
for(var i=0,l=str.length;i<l;i ){
if(str[i]=='#'&&tmp){
arr.push(tmp);
tmp = '';
}
tmp =str[i];
if(str[i]==';'&&tmp[0]=='#'){
arr.push(tmp);
tmp = '';
}
}
if(tmp)arr.push(tmp)
return arr;
}
var data = f(str);
console.log(data)
// ["你好,", "#微笑;", "1。加油兄弟", "#握手;", "#的哈哈但是."]
允悲,这种方法是可以实现想要的效果的,只不过有点麻烦,尤其是小程序端,不过最后并没有使用这种方法(原因是发现现在的输入法自带表情,不仅表情全而且无需做任何处理)
工作记录(JS向textarea添加固定内容、通过固定字符将字符串分割为数组)相关推荐
- 2021-4-27 工作记录--input和textarea出现边框部分失踪+让多个文本输入框左侧对齐+电话号码的正则表达式+图片和文字没有对齐+jQuery滚动视觉差插件+清除浮动
一.input和textarea在不同屏幕尺寸下出现边框部分失踪的问题 1.解决方法 给input和textarea设置border 2.使用例子 代码: 结果: 二.让多个文本输入框左侧对齐 代码: ...
- 【C语言进阶深度学习记录】十二 C语言中的:字符和字符串
文章目录 1 C语言中的单引号和双引号 1.1 双引号带来的BUG 2 总结 1 C语言中的单引号和双引号 C语言中的单引号用来表示字符字面量 C语言中的双引号用来表示字符串字面量,存储于全局的只读存 ...
- js中把字符串分割为数组,把数组转为字符串
字符串分割为数组,把数组转为字符串 1.字符串分割为数组 let val='1,2,3,4,5' let arr=val.split(',')//arr=['1','2','3','4','5'] 2 ...
- js中字符串分割成数组split()方法
split -> [splɪt] -> 分裂 省略分割参数: var str="How are you doing today?"; var n=str.split() ...
- 前端JS数组问题: 数组去重, 字符串分割成数组, 数组拼接成字符串
1. 数组去重: Array.from(new Set(arr_name)) let arr1 = ['张三','李四','王五','李四','赵六','张三'];let arr2 = Array.f ...
- js同步获取文本框textarea输入的内容
教大家怎么实现 同步获取文本框textarea输入的内容 这个js功能 感觉有点像ajax技术 那么先写HTML标签代码 <textarea name="" cols=&qu ...
- 原生js清空上一个元素内容_原生JS实现动态添加新元素、删除元素方法
1. 添加新元素 动态添加新元素 Coffee Tea Coffee Tea var child = document.getElementsByClassName("child" ...
- 【记录】用Javascript实现文本框textarea高度随内容自动适应增长收缩
// 最小高度 var minRows = 5; // 最大高度,超过则出现滚动条 var maxRows = 12; function autoResize(){ ...
- js 点击侧边栏展示内容_上海SEO优化网站侧边栏一般添加什么内容
相关推荐:https://www.huisheng.com/ 上海SEO优化网站侧边栏一般添加什么内容?企业做网站每个板块都是非常重要的,之前跟大家解析了关于导航栏的布局,哪些内容该添加,哪些内容不该 ...
最新文章
- 干货,Wireshark使用技巧-过滤规则
- SOTA论文也未必能被接收,谷歌科学家Eric Jang谈顶会审稿标准
- Heartrate:一个牛逼的工具,Python执行实时可视化
- 使用TS自动抓取镜像
- 阿里大规模应用Flink踩过的坑:如何大幅降低HDFS压力?
- php 策略模式实现原理,php 策略模式原理与应用深入理解
- 记一次诡异的SpringMVC中拦截路径的问题
- jClarity:在Azure上升级到Java
- python中协程与函数的区别_python 协程与go协程的区别
- 《程序员修炼之道:从小工到专家》阅读笔记03
- ABAP操作Excel(转)
- python教程文件 txt_Python读写txt文本文件的操作方法全解析
- 电子计算机发展为第五代,电子计算机的发展历程是怎样的?
- 博文视点大讲堂第33期——如何让你既能干得漂亮又说得清楚?
- c++ static 关键字总结
- Android文件资源(raw/data/asset)的存取
- 计算机水平测试在线模拟,计算机等级考试一级模拟试题「附答案」
- 计算机系统盘怎么扩充,c盘扩大,教您怎么把c盘扩大
- 文化财经SAR指标计算(一)
- 窃隐私泄露、放高利贷,输入法的暗箱操作
热门文章
- 怎样测试手机性能软件,如何检测手机性能的软件
- U盘出现“请将磁盘插入U盘”的问题怎么解决?
- CUDA页锁定内存(Pinned Memory)
- 【校园卡】更新联通校园卡套餐海报及常规操作,校园卡最新消息及选购建议,增加评论功能...
- web2.0最全的国外API应用集合
- 矩阵出现重复特征值,其特征向量的简便求法
- 千杯酒中检测那一杯毒酒的问题及思考
- cmd脚本(WIN10下)
- 挖掘用户反馈中的宝藏——NLP文本标签化解密
- 初学者如何选择适合自己的吉他?0基础新手男女生吉他推荐