获取的输入内容,没有被P标签包裹的文本和元素进行处理
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>将没有p标签的元素补充</title>
</head>
<body>
<textarea id="text" style="width: 600px;height: 300px">
"如果1.9×<i>a</i>=<i>b</i>-1.9(<i>a</i>>0,<i>b</i>>0),那么( )。"
123213<p>123123213232323</p>
</textarea>
<button id="jiaoyao">校验</button>
<p id="content"></p>
</body>
<script src="./Script/jquery-1.10.2.js"></script>
<script>
$("#jiaoyao").click(function () {
$("#content").text(xxx($("#text").val()));
})
function xxx(str) {
var rdiv = $('<div></div>');
rdiv.html(str);
var numbers = rdiv.children();
if (rdiv.find("p").length > 0) {
//按照<p></p>划分,没有的补充p
var childNodes = rdiv.get(0).childNodes;
var newhtml = $('<div></div>');
for (var i = 0; i < childNodes.length; i++) {
var newElement = document.createElement('p');
while (i < childNodes.length && childNodes[i].tagName != "P" && childNodes[i].tagName != "DIV" && childNodes[i].tagName != "IMG") {
if (childNodes[i].nodeName == "#text") {
newElement.innerHTML += childNodes[i].nodeValue;
} else {
newElement.innerHTML += childNodes[i].outerHTML;
}
i++;
}
if (newElement.innerHTML.length > 0) {
newhtml.append(newElement);
} else {
newhtml.append(childNodes[i]);
}
//i--不仅是因为i++数值变大,而且由于append导致childNodes减少
i--;
}
console.log(newhtml.html());
numbers = newhtml.children();
str = newhtml.html();
} else {
var rp = "<p>" + str + "</p>";
return rp;
} var lastdata = new Array();
for (var i = 0; i < numbers.length; i++) {
//判断是否是p标签
if (numbers[i].tagName == "P") {
var rdiv3 = $('<div></div>');
$(numbers[i]).appendTo(rdiv3);
if (jugdePContent(rdiv3.html()) == 0) {
lastdata.push(i);
}
}
if (numbers[i].tagName == "DIV") {
lastdata.push(i);
}
if (numbers[i].tagName == "IMG") {
lastdata.push(i);
}
}
var str2 = str;
var rdiv2 = $('<div></div>');
var rdiv4 = $('<div></div>');
rdiv2.html(str2);
var inputs2 = rdiv2.children();
for (var i = 0; i < inputs2.length; i++) {
for (var j = 0; j < lastdata.length; j++) {
if (i == lastdata[j]) {
$(inputs2[i]).appendTo(rdiv4);
}
}
}
return rdiv4.html();
}
//判断富文本编辑器中标签是否有效
function jugdePContent(data1) {
var lastdata = new Array();
//匹配图片
var reg1 = /<img/g;
//匹配数字,小写字母,大写字母
var reg2 = /[0-9a-zA-Z]+/g;
//匹配所有中文汉字
var reg3 = /[\u4E00-\u9FA5]+/g;
//匹配空格 换行
var reg4 = /[ \r\n]/g;
//匹配公式
var reg10 = /mathrc mce/g;
//匹配省略号......
var reg11 = /……/g;
//定义判断p是否有效的变量
var rdiv = $('<div></div>');
rdiv.html(data1);
if (rdiv.find("div").length > 0) {
return 0;
}
if (rdiv.find("p").length > 1) {
return 0;
}
if (rdiv.find("img").length > 0) {
return 0;
}
var ptemp = rdiv.find("p")[0];
var flag = 0;
if (ptemp.innerText != "") {
var sadfads = ptemp.innerText;
//判断是否有中文
if (sadfads.match(reg3)) {
flag = 1;
}
//判断是否有数字,小写字母,大写字母
if (sadfads.match(reg2)) {
flag = 1;
}
var sadfads2 = $(ptemp).html();
//判断是否有图片
if (sadfads2.match(reg1)) {
flag = 1;
}
//判断是否有公式
if (sadfads2.match(reg10)) {
flag = 1;
}
//判断是否有省略号
if (sadfads2.match(reg11)) {
flag = 1;
}
}
//删除所有<span>,<br> "\r\n "标签
// $(ptemp).find("span").remove();
$(ptemp).find("br").remove();
var sadfads3 = $(ptemp).html();
//判断是否有换行
sadfads3 = sadfads3.replace(reg4, "");
if (sadfads3 != "") {
flag = 1;
}
if (flag == 1) {
return 0;
}
return 1;
}
</script>
</html>
获取的输入内容,没有被P标签包裹的文本和元素进行处理的更多相关文章
- 百度编辑器ueditor获取不到内容?请把form放在table等其他元素最外面
百度编辑器ueditor获取不到内容?请把form放在table等其他元素最外面. <form name="form" method="post" act ...
- easyui-textbox多行文本中输入内容,有回车操作时将文本拼接<br/>
<input class="easyui-textbox" name="versionText" id="versionText" d ...
- [iOS] 输入框高度随输入内容变化
一般,类似聊天软件的输入框默认都是显示一行的,在用户输入过程中根据输入文字的内容来改变输入框的高度,以便显示全部文字.像微信,QQ的输入框就是这样的.那么这个效果应该怎么实现呢? 新博客:wosson ...
- 获取kingeditor编辑器内容
//初始化编辑器 var editorMini = KindEditor.create('.editor-mini',{ width : '70%', height : '250px', resize ...
- Python——XPath提取某个标签下所有文本
/text()获取指定标签下的文本内容,//text()获取指定标签下的文本内容,包括子标签下的文本内容,比较简单的是利用字符串相加: room_infos = li.xpath('.//a[@cla ...
- 关于MFC文本框输入内容的获取 与 设置文本框的内容
八月要开始做界面了<( ̄︶ ̄)/,然而目前只会用MFC╮(╯▽╰)╭ 好吧,言归正传,设置好文本框后,要获取用户输入的内容,可以用: GetDlgItemText() ; 这个函数有两个参数,第 ...
- 使用所见即所得文本编辑器编辑文本存入数据库后通过ajax获取服务器json_encode的数据到前台,文本内容上边的html标签不解析
使用所见即所得文本编辑器编辑文本存入数据库后通过ajax获取服务器json_encode的数据到前台,文本内容上边的html标签不解析 因为我在前台使用了jquery的text()方法,而不是html ...
- phpcms-v9 --- 如何通过{pc}标签获取全站文章内容?
1.phpcms-v9默认情况下只能根据catid获取当前栏目及子栏目下的文章,但是有时候我们需要如何通过{pc}标签来获取全站文章内容的需求,应该怎么做呢? 第一步:在content_tag.cla ...
- 模拟邮箱输入邮箱地址、收藏标签。input框输入内容后回车,内容显示成小方块并带删除按钮。
模拟邮箱输入邮箱地址.收藏标签: 文本框输入文字后按回车键或者分号键,输入框中的文字变成小块并带删除按钮和操作. 页面代码: <!DOCTYPE html> <%@ page lan ...
随机推荐
- oo第一次作业
前言: 这是一篇面向对象作业总结,作业内容是对多项式进行求导,一共有三个阶段,具体要求不详述,第一阶段只要求’+’连接coeff*x^pow的形式,第二次支持*连接的幂函数及三角函数,第三次则需要支持 ...
- CentOS 7 部署GitLab
GitLab概述 : 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过 Web 界面进行访问公开的戒者私人项目.Ruby on Rails 是一个可以 ...
- elasticsearch数据备份与sshfs建立共享文件
1.背景: 最近公司为了适应业务的发展,利用elasticsearch搜索引擎搭建了两个节点.为了防止数据丢失的特殊情况,需要定时做数据备份,而由于elasticsearch为两个节点分别在不同的服务 ...
- 游戏引擎——cocos2d-x
Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的.这是一个C++ Cocos2d-iPhone项目的版本.Cocos2d-X发展的重点是围绕Cocos2d跨平台,Cocos2d-x ...
- oracle 事务 与 提交
Oracle事务 一般事务(DML)即数据修改(增.删.改)的事务事务会将所有在事务中被修改的数据行加上锁(行级锁),来阻止其它人(会话)同时对这些数据的修改操作.当事务被提交或回滚后,这些数据才会被 ...
- 基于ROS完成寻迹运动
安装opencv功能包: $ sudo apt-get install ros-indigo-version-opencv libopencv-dev python-opencv 检测指示线: #! ...
- .NET平台常用的开发组件(csdn)
.NET平台常用的开发组件 原创 2017年02月24日 09:20:04 工欲善其事,必先利其器.学习.NET也10年有余,其优雅的编程风格,高效率的开发速度,极度简单的可扩展性,足够强大开发类库, ...
- php 使用代理IP进行数据抓取
什么是代理?什么情况下会用到代理IP?代理服务器(Proxy Server),其功能就是代用户去取得网络信息,然后返回给用户.形象的说:它是网络信息的中转站.通过代理IP访问目标站,可以隐藏用户的真实 ...
- Java反射操作成员变量 Class can not access a member with modifiers "*"
fields[j].set(obj, val); 报: Exception in thread "main" java.lang.IllegalAccessException: C ...
- 泛型集合List的详细用法
命名空间: System.Collections.Generic List<T>类是 ArrayList 类的泛型等效类. 该类使用大小可 按需动态增加 的数组实现 IList& ...