Rails关闭html_safe字符串过滤
在某些情况下我希望html的文本中包含一些换行,因为html5产生换行的方法是插入 <br />所以我可以这么写:
text = "hello world!<br />hello hopy!!!"
下面我在html.erb里这么写:
<h1><%= text%></h1>
在浏览器打开html你会发现,你得到的不是想要的结果,你会看到:
hello world!<br />hello hopy!!!
而不是
hello world!
hello hopy!!!
这是为什么呢?原因是rails对于html字符串的安全性非常敏感,他会在服务器端到前端的字符串转换时对一些敏感的html tag做转义,浏览器实际上显示的是转义后的字符串,正好就是我们此时不想要的结果.
如果你能确定你的字符串输入是安全的,那么在输出是可以打开html_safe标识,比如我在外部字符串存入数据库时做了字符串安全过滤:
safe_string = ActionController::Base.helpers.sanitize exp_str
我可以认为数据库中的safe_string内容是安全的(理论上),所以我在输出的时候就可以关闭html字符串转义,回到问题开头的例子,我可以这么写:
<h1><%= text.html_safe%></h1>
这是你会得到你想要的换行效果了.
Rails关闭html_safe字符串过滤的更多相关文章
- PHP:第五章——字符串过滤函数
<?php header("Content-Type:text/html;charset=utf-8"); //字符串过滤函数: //1.n12br 在所有新行之前插入Htm ...
- java 性能优化 字符串过滤实战
转自[http://www.apkbus.com/blog-822717-78335.html] 如有不妥联系删除!! ★一个简单的需求 首先描述一下需求:给定一个 String 对象,过滤掉除了数 ...
- trim()函数 mysql中的强大字符串过滤函数
mysql中功能强大的trim()函数. 去除两边空格: mysql> select trim(' hello world '); +-----------------------+ | tri ...
- AJPFX浅谈Java 性能优化之字符串过滤实战
★一个简单的需求 首先描述一下需求:给定一个 String 对象,过滤掉除了数字(字符'0'到'9')以外的其它字符.要求时间开销尽可能小.过滤函数的原型如下: String filter(Strin ...
- asp.net 字符串过滤
/// <summary> /// 去除HTML标记 /// </summary> /// <param name="Htmlstring">包 ...
- Python 字符串过滤
需求: str1 = " """<div class="m_wrap clearfix"><ul class=" ...
- Rails生成随机字符串及加解密
1.生成安全的base64字符串 key = SecureRandom.urlsafe_base64
- js对文本框特殊字符串过滤
HTML 中 onkeyup="stripscript(this)"; function stripscript(obj) { var s = $(obj).val(); var ...
- C语言实现 字符串过滤并修改并返回个数
基本问题:给定一个strContent,strWord,使用strWord 匹配strContent,匹配成功,将匹配部分全部替换为‘*’ ,并返回匹配成功个数.注意不能使用库函数. 例如:strCo ...
随机推荐
- Select下拉列表选择自动提交form表单数据
HTML代码: <form action='__CONTROLLER__/index' method="get" id="myform"> < ...
- 字段从varchar2修改为number,字段中的内容做修改,替换
#测试表的内容结构:如下所示: 其中DATEHH字段:代表时间,字段在表中是varchar2格式 现有如下需求:字段类型,从varchar2改变为number, 字段中 '.'去除, 2013103少 ...
- 基于Mysql 5.7 GTID 搭建双主Keepalived 高可用
实验环境 CentOS 6.9 MySQL 5.7.18 Keepalived v1.2.13 拓扑图 10.180.2.161 M1 10.180.2.162 M2 10.180.2.200 VIP ...
- [LeetCode] K Empty Slots K个空槽
There is a garden with N slots. In each slot, there is a flower. The N flowers will bloom one by one ...
- 用AJAX实现上传图片或者文件的方法
大家好,我是小C,最近在项目中用到ajax上传图片文件,本篇我们就说说ajax上传文件. 我们平时用到的AJAX,大部分都是传几个参数就可以了.简单说就是传几个字符串. $.ajax({ url: u ...
- Oracle数据库基础练习题
--1.查询和SMITH相同部门的员工姓名和雇用日期select ename,hiredate from emp where deptno=(select deptno from emp where ...
- [HNOI2012]集合选数
题目描述 <集合论与图论>这门课程有一道作业题,要求同学们求出{1, 2, 3, 4, 5}的所有满足以 下条件的子集:若 x 在该子集中,则 2x 和 3x 不能在该子集中. 同学们不喜 ...
- bzoj 3451 Normal
Description 某天WJMZBMR学习了一个神奇的算法:树的点分治! 这个算法的核心是这样的: 消耗时间=0 Solve(树 a) 消耗时间 += a 的 大小 如果 a 中 只有 1 个点 ...
- hdu 5266 pog loves szh III(lca + 线段树)
I - pog loves szh III Time Limit:6000MS Memory Limit:131072KB 64bit IO Format:%I64d & %I ...
- BZOJ2989 数列(二进制分组)
这题其实可以cdq分治做,但是如果强制在线的话,这里有个牛逼方法叫二进制分组. 它的基本思想是把修改操作按二进制分组,遇到修改就在尾部加一个,并与之前的合并,比如之前有23(16+4+2+1)个,加了 ...