文本框字符限制、focus光标定位
一、为一个元素的所有子元素设置统一样式:.className * { color: #6666 }
二、正则表达式:
1、去除所有HTML标签只保留文字: /<\/?.+?\/?>/
2、去除空格:/\s+/
\s:匹配任何空白符(空格、制表符、换页、换行…),等价于[ \f\n\r\t\v]
\s+:匹配上述任意多个字符
"." 表示除\n之外的任意字符
"*" 表示匹配0-无穷
"+" 表示匹配1-无穷
三、设置contenteditablefocus时,光标移动文本最后。
setFocu($(".className"));
function setFocu(ele) {
ele = ele[0];
ele.focus();
var range = document.createRange();
range.selectNodeContents(ele);
range.collapse(false);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
}

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1"/>
<title>Title</title>
<script src="../commonJs/jquery-3.1.0.min.js"></script>
<style>
* {box-sizing: border-box;}
.txtBox {
width: 100%;
height: 300px;
outline: none;
padding: 10px;
border: 1px solid #FCA700;
} .txtBox:empty::after {
display: block;
content: attr(placeholder);
color: #999;
} .lengthTip {
text-align: right;
}
</style>
</head>
<body>
<div class="txtBox" contenteditable="true" placeholder="请输入内容"></div>
<p class="lengthTip"><span class="txtLength">0</span> / 500</p>
<script>
$(function () {
txtObj.init();
}); var txtObj = {
getLength: function () {
var txtBox = $(".txtBox");
txtBox.keyup(function () {
var reg = /<\/?.+?\/?>|\s+/g;
var txtLen = txtBox.html().replace(reg, "").length;
$(".txtLength").html(txtLen);
});
}, getTxt: function () {
$(".txtBox").html(txtJson.txt);
txtObj.setFocus($(".txtBox"));
}, // 设置contenteditable光标位置
setFocus: function (ele) {
ele = ele[0];
var range = document.createRange();
range.selectNodeContents(ele);
range.collapse(false); var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
}, init: function () {
txtObj.getLength();
txtObj.getTxt();
}
} var txtJson = {
"txt": '<div class="txtContent"><span>内容只包括文本,不包括html标签,空格、换行……</span></div>'
}
</script>
</body>
</html>
文本框字符限制、focus光标定位的更多相关文章
- WPF 自定义文本框输入法 IME 跟随光标
本文告诉大家在 WPF 写一个自定义的文本框,如何实现让输入法跟随光标 本文非小白向,本文适合想开发自定义的文本框,从底层开始开发的文本库的伙伴.在开始之前,期望了解了文本库开发的基础知识 本文实现的 ...
- js文本框字符数输入限制
我们常常在前台页面做一些文本输入长度的验证,为什么呢?因为数据库字段设置了大小,如果不限制输入长度,那么写入库时就会引发字符串截断异常.今天就给大家分享一个jquery插件来解决这一问题. (func ...
- div contenteditable 重新编辑时focus光标定位到前面问题解决
<div class="editdiv" id="edit" contenteditable="true">这是添加文字< ...
- input _文本框回车或者失去光标触发事件
IE下,当一个HTML元素的属性改变的时候,都能通过 onpropertychange来即时捕获. onchange在属性值改变时还必须使得当前元素失去焦点(onblur)才可以激活该事件. 了解这一 ...
- JQuery实时监控文本框字符变化
$(function(){ $('input[name="addr"]').on('input propertychange', function() { if ($('input ...
- input文本框点击第一次光标在最右边
效果: 样式效果引入bootstrap4.0就OK了. HTML代码: <div class="input-group w-25"> <div class=&qu ...
- AlloyRenderingEngine文本框组件
写在前面 Github: https://github.com/AlloyTeam/AlloyGameEngine 在dom元素里,自带了input标签,设置其type为text,它就是一个文本框. ...
- DOM(九)使用DOM设置文本框
1.控制用户输入的字符个数 对于单行文本框和密码输入框,可以利用maxlength属性控制用户输入的字符个数. 对于多行文本,maxlength为自定义属性,其值最多输入的字符的个数,在onkeypr ...
- Silverlight中文本框添加回车事件后,换行无法清除的解决方法
在开发Silverlight的项目中,为了更好的用户体验,我们常要给一些控件添加一些快捷键.然而,在Silverlight中当用户回车提交后,光标停留在文本框的第二行怎么也清除不掉,经过一段时间研究, ...
随机推荐
- spring-boot-learning- Elasticsearch
索引==数据库 类型==表 文档==表里面的记录 属性==表里面的列 使用RestFul风格elasticSearch进行操作 添加一个索引为megacorp,类型为employee,--id为1的文 ...
- Amaze UI 模版中心上线丨十几款高质量优秀模版免费提供!
Amaze UI模版中心终于上线了,目前汇聚了包含企业门户.新闻资讯.管理后台等多个领域的模版,全都可以免费下载. Amaze UI模版中心后续还会增加更多的模版以及领域,请各位持续关注. 模版中心的 ...
- 7步学会在Windows下上架iOS APP流程
之前用跨平台开发工具做了一个应用,平台可以同时生成安卓版和苹果版,想着也把这应用上架到App Store试试,于是找同学借了个苹果开发者账号,但没那么简单,还要用到Mac电脑的钥匙串申请发布证书和上传 ...
- Linux 0.11源码阅读笔记-块设备驱动程序
块设备驱动程序 块设备驱动程序负责实现对块设备数据的读写功能.内核代码统一使用缓冲块间接和块设备(如磁盘)交换数据,缓冲区数据通过块设备驱动程序和块设备交换数据. 块设备的管理 块设备表 内核通过一张 ...
- 软件构造实验-Guns
根据guns开发示例,搭建汽车信息管理系统
- springboot插件
目前spring官网(http://spring.io/tools/sts/all)上可下载的spring插件只有:springsource-tool-suite-3.8.4(sts-3.8.4).但 ...
- for循环打印九九乘法表
学习目标: 熟练掌握 for 循环的使用 例题: 需求:打印九九乘法表 代码如下: // 九九乘法表 // row 为行,col为列 for(int row = 1; row < 10; row ...
- java集合(arraylist详解)
一.ArrayList概述 ArrayList是实现List接口的动态数组,所谓动态就是它的大小是可变的.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类 ...
- setTimeout中第一个参数
永远不要传递字符串作为setTimeout的第一个参数!!!记住第一个参数只允许函数,或者匿名函数!因为传递字符串有陷阱啊!!它就是披着羊皮的eval啊!!而且上下文会变成全局啊!! 第一个参数为可执 ...
- sequelize模型
model表示数据库中的表,有时它也会被称为"模型"或"工厂".Model不能通过构造函数创建,只能通过sequlize.define方法来定义或通过sequl ...