一、为一个元素的所有子元素设置统一样式:.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光标定位的更多相关文章

  1. WPF 自定义文本框输入法 IME 跟随光标

    本文告诉大家在 WPF 写一个自定义的文本框,如何实现让输入法跟随光标 本文非小白向,本文适合想开发自定义的文本框,从底层开始开发的文本库的伙伴.在开始之前,期望了解了文本库开发的基础知识 本文实现的 ...

  2. js文本框字符数输入限制

    我们常常在前台页面做一些文本输入长度的验证,为什么呢?因为数据库字段设置了大小,如果不限制输入长度,那么写入库时就会引发字符串截断异常.今天就给大家分享一个jquery插件来解决这一问题. (func ...

  3. div contenteditable 重新编辑时focus光标定位到前面问题解决

    <div class="editdiv" id="edit" contenteditable="true">这是添加文字< ...

  4. input _文本框回车或者失去光标触发事件

    IE下,当一个HTML元素的属性改变的时候,都能通过 onpropertychange来即时捕获. onchange在属性值改变时还必须使得当前元素失去焦点(onblur)才可以激活该事件. 了解这一 ...

  5. JQuery实时监控文本框字符变化

    $(function(){ $('input[name="addr"]').on('input propertychange', function() { if ($('input ...

  6. input文本框点击第一次光标在最右边

    效果: 样式效果引入bootstrap4.0就OK了. HTML代码: <div class="input-group w-25"> <div class=&qu ...

  7. AlloyRenderingEngine文本框组件

    写在前面 Github: https://github.com/AlloyTeam/AlloyGameEngine 在dom元素里,自带了input标签,设置其type为text,它就是一个文本框. ...

  8. DOM(九)使用DOM设置文本框

    1.控制用户输入的字符个数 对于单行文本框和密码输入框,可以利用maxlength属性控制用户输入的字符个数. 对于多行文本,maxlength为自定义属性,其值最多输入的字符的个数,在onkeypr ...

  9. Silverlight中文本框添加回车事件后,换行无法清除的解决方法

    在开发Silverlight的项目中,为了更好的用户体验,我们常要给一些控件添加一些快捷键.然而,在Silverlight中当用户回车提交后,光标停留在文本框的第二行怎么也清除不掉,经过一段时间研究, ...

随机推荐

  1. 什么是 Spring 的 MVC 框架?

    Spring 配备构建 Web 应用的全功能 MVC 框架.Spring 可以很便捷地和其他 MVC 框架集成,如 Struts,Spring 的 MVC 框架用控制反转把业务对象和控制逻 辑清晰地隔 ...

  2. 简单vue项目脚手架

    简单vue项目脚手架 github地址 使用技术栈 webpack(^2.6.1) webpack-dev-server(^2.4.5) vue(^2.3.3) vuex(^2.3.1) vue-ro ...

  3. python去除txt文件空白行

    代码: def delblankline(infile, outfile): infopen = open(infile, 'r', encoding="utf-8") outfo ...

  4. 自定义View的onDraw 函数不执行

    解决办法:    在自定义的View 的构造方法中添加一句话:   this.setWillNotDraw(false);解释:那么加这条语句的作用是什么?先看API:        If this ...

  5. ubuntu修复找不到sudo命令

    1.首先,您需要安装该sudo命令.你可以使用 apt 包管理器来做到这一点.您需要以有权安装软件包的用户身份运行此命令,例如root: apt-get install sudo 2.下一步是为您自己 ...

  6. MySQL安装配置教程(超级详细)

    一. 下载MySQL Mysql官网下载地址:https://downloads.mysql.com/archives/installer/ 1. 选择要安装的版本,本篇文章选择的是5.7.31版本, ...

  7. 利用Docker快速部署Mysql

    写在前面 我又来更新了~~~,今天内容较少,主要是利用Docker快速部署Mysql和初始化数据 利用Docker下载Mysql 简洁明了,在命令提示符中输入 docker pull mysql:8. ...

  8. kali添加开机自启[亲测有效]

    kali添加开机自启 采用systemd的方法,kali默认是没有rc.local的,需要自己创建.本方法也适用于ubuntu 18.04 64bit 改写rc-local.service 文件 先从 ...

  9. python---二叉树广度优先和深度优先遍历的实现

    class Node(object): """结点""" def __init__(self, data): self.data = dat ...

  10. C++STL 中的数值算法(iota、accumulate、adjacent_difference、inner_product、partial_sum)

    以下算法均包含在头文件 numeric 中 ##1.iota 该函数可以把一个范围内的序列从给定的初始值开始累加 先看用法. 例: 假设我需要一个长度为10,从5开始递增的序列 vector<i ...