<!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标签包裹的文本和元素进行处理的更多相关文章

  1. 百度编辑器ueditor获取不到内容?请把form放在table等其他元素最外面

    百度编辑器ueditor获取不到内容?请把form放在table等其他元素最外面. <form name="form" method="post" act ...

  2. easyui-textbox多行文本中输入内容,有回车操作时将文本拼接<br/>

    <input class="easyui-textbox" name="versionText" id="versionText" d ...

  3. [iOS] 输入框高度随输入内容变化

    一般,类似聊天软件的输入框默认都是显示一行的,在用户输入过程中根据输入文字的内容来改变输入框的高度,以便显示全部文字.像微信,QQ的输入框就是这样的.那么这个效果应该怎么实现呢? 新博客:wosson ...

  4. 获取kingeditor编辑器内容

    //初始化编辑器 var editorMini = KindEditor.create('.editor-mini',{ width : '70%', height : '250px', resize ...

  5. Python——XPath提取某个标签下所有文本

    /text()获取指定标签下的文本内容,//text()获取指定标签下的文本内容,包括子标签下的文本内容,比较简单的是利用字符串相加: room_infos = li.xpath('.//a[@cla ...

  6. 关于MFC文本框输入内容的获取 与 设置文本框的内容

    八月要开始做界面了<( ̄︶ ̄)/,然而目前只会用MFC╮(╯▽╰)╭ 好吧,言归正传,设置好文本框后,要获取用户输入的内容,可以用: GetDlgItemText() ; 这个函数有两个参数,第 ...

  7. 使用所见即所得文本编辑器编辑文本存入数据库后通过ajax获取服务器json_encode的数据到前台,文本内容上边的html标签不解析

    使用所见即所得文本编辑器编辑文本存入数据库后通过ajax获取服务器json_encode的数据到前台,文本内容上边的html标签不解析 因为我在前台使用了jquery的text()方法,而不是html ...

  8. phpcms-v9 --- 如何通过{pc}标签获取全站文章内容?

    1.phpcms-v9默认情况下只能根据catid获取当前栏目及子栏目下的文章,但是有时候我们需要如何通过{pc}标签来获取全站文章内容的需求,应该怎么做呢? 第一步:在content_tag.cla ...

  9. 模拟邮箱输入邮箱地址、收藏标签。input框输入内容后回车,内容显示成小方块并带删除按钮。

    模拟邮箱输入邮箱地址.收藏标签: 文本框输入文字后按回车键或者分号键,输入框中的文字变成小块并带删除按钮和操作. 页面代码: <!DOCTYPE html> <%@ page lan ...

随机推荐

  1. linux下python3(Setup)项目

    新建setup.py文件 写入 from setuptools import setup setup( name='tickets', #定义你项目的名称 py_modules=['tickets', ...

  2. platform怎么实现数据数据和驱动分离

    一些重要的结构体: struct platform_device { const char * name; int id; struct device dev; u32 num_resources; ...

  3. CentOS6.5 切换 图形界面 与 命令行界面

    CentOS6.5 切换图形界面与命令行界面 [1]场景1:图形界面 -> 命令行界面 方式一(快捷键):Ctrl + Alt + F2 方式二(终端命令):init 3 (PS:init与3之 ...

  4. Appium(二)---启动App+模拟滑动

    环境搭建好了,就可以实现基本的操作,比如启动App和模拟滑动.这里我实现的是在真机(乐视1s)上启动抖音App,并滑动抖音的视频列表,代码如下: from appium import webdrive ...

  5. 在mysql 中使用utf8的问题

    在MapReducer插入mysql 遇到了 Incorrect string value: '\xF0\x9F\x98\xAD",...' for column 'commentConte ...

  6. PHP环境配置遇到的小问题

    1.设置时区 2.默认打开文件 3.文件夹权限设置

  7. day 06

    深浅拷贝 # 值拷贝:应用场景最多ls = [1, 'abc', [10]]​ls1 = ls  # ls1直接将ls中存放的地址拿过来# ls内部的值发生任何变化,ls1都会随之变化​ls2 = l ...

  8. Java序列化,解决字段为null与序列化后首字母变小写问题

    fastjson.jar package com.apt.utils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.se ...

  9. Django路由控制

    本文目录 一 Django中路由的作用 二 简单的路由配置 三 有名分组 四 路由分发 五 反向解析 六 名称空间 七 django2.0版的path 回到目录 一 Django中路由的作用 URL配 ...

  10. WARN PageNotFound:208 - Request method 'POST' not supported

    在地址栏输入网址访问页面 ,用的是GET方法. 在用ajax接收后台数据,根据返回值进行提示或页面跳转时报:WARN PageNotFound:208 - Request method 'POST' ...