获取的输入内容,没有被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 ...
随机推荐
- Unity XLua之协程
如何使用xlua实现协程,示例代码如下: 转载请注明出处:https://www.cnblogs.com/jietian331/p/10735773.html local unpack = unpac ...
- git之commit
面解释的话, 1.git commit -m用于提交暂存区的文件: 2.git commit -am用于提交跟踪过的文件. 要理解它们的区别,首先要明白git的文件状态变化周期,如下图所示 工作目录下 ...
- IDEA 创建Web项目
1,创建Project:依次点击File–new Project: 创建.png 2,选择Empty Project项目,点击Next: 下一步 3,输入项目名称,选择项目路径: Past ...
- Kindle:自动追更之Calibre2脚本
#!/usr/bin/env python2 # vim:fileencoding=utf-8 from __future__ import unicode_literals, division, a ...
- django signals 信号
django signals 信号 配置方式 app下的 __init__.py default_app_config="web.apps.WebConfig" #初始化app配置 ...
- Blender学习
学习顺序(下面为引用他人的视频或博客) 51个必须知道的blender操作 https://www.bilibili.com/video/av4619930/ Blender常用快捷键一览表 http ...
- 修改AD FS
https://technet.microsoft.com/en-us/windows-server-docs/identity/ad-fs/operations/ad-fs-user-sign-in ...
- IO流(二)
二.File类 概述 文件和目录路径名的抽象表示形式 构造方法 public File(String pathname) public File(String parent,String child) ...
- 向 Nginx 主进程发送 USR1 信号
[1]Nginx重新打开日志文件 向 Nginx 主进程发送 USR1 信号.USR1 信号是重新打开日志文件: 方式一: kill -USR1 $(cat /usr/local/lib/ubcsrv ...
- dos模式下切换电脑用户
启用管理员运行dos 然后输入net user adminstrator /active.yes 然后点击打开按钮 就可以切换电脑用户了