获取的输入内容,没有被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 ...
随机推荐
- laravel----------carbon时间类的使用介绍
echo Carbon::today(); // 对象 2018-04-17 00:00:00echo Carbon::tomorrow(); // 对象 2018-04-18 00:00 ...
- 关于Ajax的认识和封装(小记)
一,Ajax 的概念 1,Ajax 是一种在无需重新加载整个网页(即刷新网页)的情况下,能够更新部分网页的技术. 2,Ajax 的全称是Asynchronous Javascript And XML” ...
- 5分钟安装 关于win10安装composer PHP 用来管理依赖(dependency)关系的工具
1.在你的phpstudy或者wamp中开启extension=php_openssl.dll扩展 (php配置文件)并配置好php的环境变量 2.在与你安装phpstudy和wamp不一样的盘中创建 ...
- log4net 写入 mongodb+Mongodb记录日志
项目里面需要记录大量的日志,为了方便分析,也是为了方便开发人员远程查询日志,可以把日志写入MongoDB. 1.先上Log4net配置 <?xml version="1.0" ...
- ubuntu16.04下g++安装及使用
1)首先在虚拟机中安装Ubuntu16.04,网络模式设置为NAT模式,安装完成后在虚拟机中测试是否能够上网. 2)进入Ubuntu,按Ctrl+alt+T,调出终端,输入sudo su,输入密码切换 ...
- zw字王《中华大字库》2018版升级项目正式启动
zw字王<中华大字库>2018版升级项目正式启动 https://www.cnblogs.com/ziwang/p/9500537.html 这次升级是和字库协会一起合作,首批推出的字体, ...
- spring boot + vue + element-ui全栈开发入门——前端编辑数据对话框
需求 1.点击“添加”按钮,弹出录入数据的对话框窗口,并录入数据,如果数据有误则不允许提交.数据填写完毕后,点击“保存”按钮,调用http协议提交数据,提交完毕刷新页面数据.点击“取消”按钮关闭对话 ...
- OGG 18.1 for mysql远程捕获测试
Ogg18.1 remote capture要求mysql为5.7版本,只能从linux远程捕获mysql on windows or linux,且不支持DDL捕获.支持远程mysql为commun ...
- appium1.4版本,每次运行appium时需要安装unlock,setting文件的解决方法
在使用appium执行自动化脚本时,首次运行脚本时会在手机中安装unlock,setting,inputmanager三个apk,以达到让appium控制app的目的,但是运行完一次之后,在OPPO, ...
- Serializable中的serialVersionUID
有序列化,就必然有反序列化!比如在A端为UserLogin(见上一篇对象序列化)做了序列化,然后在B端进行反序列化. 首先需要,A端和B端都定义有相同的UserLogin类.可是,万一两端的UserL ...