保留多行文本框的换行与空格样式,并转义HTML标记的尖括号

解决/usr/lib64/libstdc++.so.6和/lib64/libc.so.6版本过低问题 在CentOS7.0中编译好MySQL5.7.14之后,然后在CentOS6.5中初始化MySQL,执行:/usr/local/mysql/bin/mysqld --version出现如下问题:./bin/mysqld: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./bin/mysqld) 阅读详情

本文采用JavaScript进行演示,这并不影响你在项目中的实际应用,因为我提供的思路,你可以轻易地把它用你自己的语言进行实现,这通常是后台语言,而且下面提供的正则表达式你几乎可以完全照搬,因为正则表达式是通用的。

一、需求来源

假如在你的一个网站项目中,你需要提供一个留言入口,你用的只是普通多行文本框(textarea)进行留言内容的收集,并不喜欢用户输入一些HTML标记,甚至是脚本。像下面我在douban的影评发布一样,如果你未加入处理,直接存入数据库,最终在页面输出显示的时候你也直接读数据库的内容,你将看到所有本意要分段的文本连在了一起,如果文本框内容还包含HTML标记的话,也显示了效果。相信这并不是你相要的效果,所以得想办法把textarea中的换行符“/n”换成“<br/>”供页面最终正常显示用,相应地对空格(全角空格可以不处理,我发现163博客就是这样做的)与HTML标记的尖括号也进行转换,这很容易想到用查找替换的方法。

二、优化方案

如果在发布信息的时候,把/n转成<br/>再存入数据库,这样在页面显示的时候,就直接读库并显示就行了,但是如果你要编辑之前的信息,你又要把从数据库中读出来的含有<br/>的内容的<br/>转成/n在文档框(textarea)中才能正常显示供修改。似乎要处理几步。

另外一个办法就是发布的时候不处理,那么这条信息在被编辑的时候也是无须处理的,但是在页面显示之前要把/n转成<br/>,但我认为这种方法不够优化,对程序整体性能有一定影响,因为转换要用正则表达式进行替换,是会让程序变慢,而且内容发布出去后,很多人阅读这条信息的时候,每个用户对服务器的请求都要进行一次转换(除非你在发布一瞬间生成了静态页),而发布与编辑的次数远比外面访问次数要少的多,所以本人建议采用第一种方法。

三、一个例子和源码

下面是我用JavaScript写的一个实验工具,大家可以试试。

源码下载:文本框保留格式.rar

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>文本框保留格式 ucoolweb.com</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
<textarea name="textContent" cols="100" rows="15" id="textContent"></textarea>
<br />
<input type="button" name="Submit" value="转换输出" onclick="outHTML()" />
<input name="checkbox" type="checkbox" id="checkbox" value="checkbox" checked="checked" />
<label for="checkbox" style="color:#F00">启用转换输出</label>
</form>
<div id="out" style="border:1px solid #F90; padding:10px; background:#FFF8DC; margin-top:10px">请在上面文本框录入带HTML标记的文本测试!</div>
<script type="text/javascript">
/**********************************************************
* author Tang Guohui, created: 2007-12-9 12:30:15
**********************************************************/
function outHTML() {
var getValue=document.getElementById("textContent").value;
var endValue=((getValue.replace(/<(.+?)>/gi,"&lt;$1&gt;")).replace(/ /gi,"&nbsp;")).replace(//n/gi,"<br>");
/*
(1)转义“<”、“>”
(2)改半角空格为&nbsp;
(3)保留换行
*/

if (document.getElementById("checkbox").checked==true) {
document.getElementById("out").innerHTML=endValue;
}else{
document.getElementById("out").innerHTML=getValue;
}

}//end outHTML function
</script>
</body>
</html>

<1>未启用转换效果:

<2>启用转换效果:

离线安装vue脚手架,内网安装@vue/cli 公司开发环境使用内网,无法用外网,搭建环境的时候,发现内网系统没有安装vue脚手架,我搜了很多文章,发现他们的方法对我都不适用,然后就自己摸索,最终皇天不负有心人,终于被我安装上了,一下是我内网离线安装vue/cli的方法,希望能帮助到有需要的小伙伴! 因为npm被集成在nodejs中,而安装nodejs只需要把nodejs安装包copy到内网电脑安装就行,比较简单,这里就不多做演示。 在外网电脑上,使用npm install -g xxxx命令下载好我们所需要的各个安装包,比如: npm insta 阅读详情

相关推荐

IC面试常考题 Verilog三分频电路设计(占空比50%,三分之一,三分之二)

实现三分频电路最简单的是: 利用计数器实现。 时序图分析(本人比较懒,平常科研忙,所以直接手画时序图了,懒得用软件画了): 直接上图分析:利用计数器每隔三个周期信号翻转一次,同时在不同的计数下翻转得到的同步信号 clk_1和clk_2,再利用异或即可实现出一个不同占空比的三分频信号(同样的方法也可扩展到其他奇数分频设计中)。 例如占空比50%: module Div_three( input clk, input rst_n, output div_three ); reg

qq_41884662的博客 1万+

字符串的转义、多行以及连接方法(+,$);数组的属性和方法

转义字符:\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\。注意转义的字符长度是1,汉字长度也是1。 多行表示:由于多行字符串用\n写起来比较费事,所以最新的ES6标准新增了一种多行字符串的表示方法,用反引号 ` ... ` 表示 `这是一个 多行 字符串`; 连接字符串:有两种方法,第一种方法使用+连接符连接;第二种方法使用ES6的模板字符串,格式中必须采用反引号,变量使用${}。 var name = '小明'; var age = 20;

zz2230633069的博客 1485

Kindle电子书DRM破解全攻略:从下载到转换的完整流程(含最新DeDRM插件配置)

本文详细介绍了如何合法移除个人购买的Kindle电子书的DRM保护,实现跨设备阅读与备份。核心内容包括使用最新DeDRM插件(如noDRM分支)配合Calibre进行配置,并针对亚马逊最新的KFX加密格式提供了密钥提取与实战操作指南。文章强调该方法仅适用于个人合理使用,旨在帮助读者真正掌控自己的数字资产。

delta的博客 574

【第五部分 | JS WebAPI】2:DOM 元素操作

JS WebAPIs 的第二篇 —— 操作 DOM元素

m0_57265007的博客 594

对比实验系列:Efficientdet环境配置及训练个人数据集

可以通过下方链接下载Efficientdet源码。

Yayisheng的博客 4585

电力电子论文(TPE、TTE)投稿经验分享

电力电子顶刊论文投稿经验

橙子的博客 2万+

获取textarea中的换行和空格并转义显示在网页上

textarea获取空格

Senssic 7994

Visual Studio Git 使用指南

Visual Studio 2022深度集成了Git功能,提供了直观的图形界面管理源代码。本文详细介绍了VS中Git的使用方法:从环境准备、克隆/创建仓库开始,重点讲解了"Git更改"窗口的日常操作,包括查看修改、暂存文件、提交推送等。同时涵盖了分支管理、查看历史、解决冲突等核心功能,以及储藏、重置等高级操作。文章还提供了实用技巧,如提交规范、频繁提交等最佳实践。VS的Git集成覆盖了日常开发需求,图形界面与命令行可互补使用,适合各层次开发者高效管理代码版本。

guigenyi的专栏 1565

Flex 最全的换行 制表符 回车 空格 特殊符号

<br />出自:http://www.myflexhero.com/share/flex-hero-flex4/flex-hero-coding-techniques/<br />字符 十进制字符编号 实体名字 说明<br />— — 未使用Unused<br />—  — 未使用Unused<br />—  — 未使用Unused<br />—  — 未使用Unused<br />—  — 未使用Unused<br />—  — 未使用Unu

帆软爱好者的专栏 3172

路由 NAT(简介、静态NAT、动态NAT、NATServer、NAPT、Easy-ip、NAT地址映射表)

为了有效节约公网IPv4地址,并提供一定的网络安全保障能力,NAT网络地址转换技术孕育而生。NAT(Network Address Translation)网络地址转换,主要将私有地址转换成公网地址。NAT优点能够缓解公网地址紧缺问题。解决IP地址空间冲突或重叠的问题。网络扩展性更高,本地控制也更容易。内网结构变得不可见,从而增加了安全性。NAT缺点因为地址映射的原因,当网络转换过多时会存在转发延迟的问题。端到端寻址变得困难,因为经过了NAT地址转换相当于换了张脸,想找人就难了。

Hades_Ling的优快云博客 8750

YOLOv8性能突破:DySample超轻量动态上采样算子的创新应用与实现【附保姆级代码】

YOLOv8(You Only Look Once Version 8)作为YOLO系列模型的最新版本,延续了高效、准确的目标检测优势。其基础结构包含了骨干网络(Backbone)、检测头(Head)、以及特征融合层(Neck)。在特征融合阶段,YOLOv8需要对不同尺度的特征图进行上采样,以便将低分辨率的特征与高分辨率的特征进行融合。传统的上采样操作多使用插值(如双线性插值)或固定卷积,而这些方法可能无法很好地适应复杂的上下文信息。

一键难忘的博客 3120

多行文本输入框如何实现,换行回显。

2.内容放到接口时,会出现\n标识。

m0_58889179的博客 1567

AI上推荐 之 逻辑回归模型与GBDT+LR(特征工程模型化的开端)

1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产者:如何让自己生产的信息脱颖而出, 受到广大用户的关注? 为了解决这个矛盾, 推荐系统应时而生, 并飞速前进,在用户和信息之间架起了一道桥梁,一方面帮助用户发现对自己有价值的信息, 一方面让信息能够展现在对它感兴趣的用户前面。 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协

Miracle8070 8249

在HTML中多行文本框的标记是,保留多行文本框的换行与空格样式,并转义HTML标记的尖括号...

本文采用JavaScript进行演示,这并不影响你在项目中的实际应用,因为我提供的思路,你可以轻易地把它用你自己的语言进行实现,这通常是后台语言,而且下面提供的正则表达式你几乎可以完全照搬,因为正则表达式是通用的。一、需求来源假如在你的一个网站项目中,你需要提供一个留言入口,你用的只是普通多行文本框(textarea)进行留言内容的收集,并不喜欢用户输入一些HTML标记,甚至是脚本。像下面我在do...

weixin_34617955的博客 756

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

html转word保留样式_译员必备 | 初识Word格式标记

标记含义在计算机术语中,标记 (markup) 是使用称为标记(tag)的代码来定义任何数据的结构、外观以及含义的过程。运营过公众号的小伙伴一定熟悉微信编辑器。我们在使用模板排版好文字时,点击html代码,就会发现我们的前端样式变成了代码模式,我们经常看到等一系列尖括号包裹的标签,从而定义前端的文字、图形、动画、声音、表格、链接。因此我们称其为超文本标记语言(Hyper Text Mar...

weixin_39792519的博客 788

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

HTML常用标记总结——HTML入门

HTML常用标记总结HTML基础HTML概念html的文件结构html的基本标记body元素的属性页面的注释文本标题标题标记标题对齐方式文字斜体、下划线、删除线上标、下标特殊符号段落段落标记段落的换行标记段落的原格式标记水平线 HTML基础 HTML概念 HTML(超文本标记语言)是纯文本类型的语言,它是Internet上用于编写网页的主要语言,使用html编写的网页文件也是标准的纯文本文件。 单...

qq_44005101的博客 5048

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

HTML中空格和尖括号

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>超文本</title> </head> <body> <div style="width:100px; height: 100px;b...

cnuwsn的博客 991

行中断html代码是,html中的空格换行分段的应用

在HTML语言中,实现换行是靠一个行中断标识而不是在源代码中敲回车。标记在HTML文件中的作用同在文本文件中敲回车的效果相似————换行,没有属性,用法非常简单。但源代码中的回车只起使源代码排版美观的作用,不会影响浏览器中的页面显示。此外它还是html中为数不多的没有结束标识的单向标记,即无需。另外还要说明,在网页中有一些特殊的字符是无法直接显示的,比如我们经常用到的尖括号 "",要显示他们需要用...

weixin_34005394的博客 496

android html转word保留样式_译员必备 | 初识Word格式标记

标记含义在计算机术语中,标记 (markup) 是使用称为标记(tag)的代码来定义任何数据的结构、外观以及含义的过程。运营过公众号的小伙伴一定熟悉微信编辑器。我们在使用模板排版好文字时,点击html代码,就会发现我们的前端样式变成了代码模式,我们经常看到等一系列尖括号包裹的标签,从而定义前端的文字、图形、动画、声音、表格、链接。因此我们称其为超文本标记语言(Hyper Text Mar...

weixin_32350433的博客 375

常用的html标记 双标记,常用HTML标记和格式

本文要介绍的是应用中常用的HTML标记和格式,这些知识点在网页中会经常用到,也是必须得掌握的知识点之一。1、设置正文标题标题的作用是用精简的文字概括整篇文章的主题,故文字不能太长,应从外表上突出标题与内容的关系。标题的语法很简单,由双标记组成,在尖括号里输入h与从1?6中的任意一个数字即可,数字不同,所表达的标题大小效果也不一样。格式:< h#>菁瑞优智< /h#>#代表数...

weixin_33525438的博客 686

(第二章)HTML基本标记

第二章HTML基本标记 目录 第二章HTML基本标记 1、标题标记title 2、头部标记head 3、元信息标记meta 3.1设置页面关键字 3.2设置页面说明 3.3定义编辑工具 3.4添加作者信息 3.5设置网页文字及语言 3.6设置网页的定时跳转 4、页面注释标记 5、标题字 5.1标题字标记h 5.2标题字对齐属性align 6、段落标记 6.1段落标...

SUN19980421的博客 5189

Bootstrap3 源代码样式

源代码 源代码是指计算机程序的源码,或其他机器可以阅读的文本,如计算机程序、或函数名、XML元素名、或文件名等。 Bootstrap中,有两种方式显示源代码,一种是使用 <code> 标签包裹行内代码,另一种是使用 <pre> 标签包裹多行代码。 在使用 <pre> 和 <code> 标签标记源代码时,为了正确的展示代码,要对代码中的尖括号进行...

歪脖先生的博客 825

html中常用的双标记,HTML常用标签

看客老爷们大家好!为了让小白(零基础)能快速的了解H5,为了让小白能有一个从零开始的,可以看懂的,看了后能学到一些知识点的文档,今天开始我将持续性的写一些小知识点的文章;下面我们就从页面结构开始:网页的构成网页是由结构(页面的结构部分html)、表现(网页的样式css)、行为(网页要实现的交互功能js)组成的;简单的说html是我们造的一个机器人;css就是给他穿上衣服;js就是赋予它走路,下棋等...

weixin_39846089的博客 3900
上一篇: 用VS2005打开VS2008建的解决方案
下一篇: 禁用页面部分JavaScript方法
webflash
博客等级 码龄18年 19粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值