js赋值时特殊字符完美处理方案
2019独角兽企业重金招聘Python工程师标准>>>
解决方案:1、建立WEB-INF/tags/format/enter.tag文件,其文件内容如下:
01 <%@ tag body-content="scriptless" pageEncoding="utf-8" %><%@ attribute name="value" type="java.lang.String" required="true"%><%
02 if(value != null) {
03 int lengthh = value.length();
04 StringBuffer filtered = new StringBuffer(lengthh);
05 char prevChar = '\u0000';
06 char c;
07 for (int i = 0; i < lengthh; i++) {
08 c = value.charAt(i);
09 if (c == '"') {
10 filtered.append("\\\"");
11 } else if (c == '\'') {
12 filtered.append("\\'");
13 } else if (c == '\\') {
14 filtered.append("\\\\");
15 } else if (c == '\t') {
16 filtered.append("\\t");
17 } else if (c == '\n') {
18 if (prevChar != '\r') {
19 filtered.append("\\n");
20 }
21 } else if (c == '\r') {
22 filtered.append("\\n");
23 } else if (c == '\f') {
24 filtered.append("\\f");
25 } else if (c == '/') {
26 filtered.append("\\/");
27 } else {
28 filtered.append(c);
29 }
30 prevChar = c;
31 }
32 value = String.valueOf(filtered);
33 }
34 out.print(value);
35 %>2、页面运用,代码示例如下:
01 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
02 <%@ taglib tagdir="/WEB-INF/tags/format" prefix="format" %>
03
04 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
05 <html>
06 <head>
07 <title></title>
08
09 <meta http-equiv="pragma" content="no-cache">
10 <meta http-equiv="cache-control" content="no-cache">
11 <script type="text/javascript">
12 function doTest() {
13 //var testValue = '${valueFromJava }';// 这种复制若valueFromJava中含有特殊字符,此时会报错
14 var testValue = '<format:enter value="${s.content }" />';// 这种处理就……
15 }
16 </script>
17 </head>
18
19 <body>
20
21 </body>
22 </html>注:js中的特殊字符有:转义序列 字符
\b 退格
\f 走纸换页
\n 换行
\r 回车
\t 横向跳格 (Ctrl-I)
\' 单引号
\" 双引号
\\ 反斜杠
解决方案:1、建立WEB-INF/tags/format/enter.tag文件,其文件内容如下:
01 <%@ tag body-content="scriptless" pageEncoding="utf-8" %><%@ attribute name="value" type="java.lang.String" required="true"%><%
02 if(value != null) {
03 int lengthh = value.length();
04 StringBuffer filtered = new StringBuffer(lengthh);
05 char prevChar = '\u0000';
06 char c;
07 for (int i = 0; i < lengthh; i++) {
08 c = value.charAt(i);
09 if (c == '"') {
10 filtered.append("\\\"");
11 } else if (c == '\'') {
12 filtered.append("\\'");
13 } else if (c == '\\') {
14 filtered.append("\\\\");
15 } else if (c == '\t') {
16 filtered.append("\\t");
17 } else if (c == '\n') {
18 if (prevChar != '\r') {
19 filtered.append("\\n");
20 }
21 } else if (c == '\r') {
22 filtered.append("\\n");
23 } else if (c == '\f') {
24 filtered.append("\\f");
25 } else if (c == '/') {
26 filtered.append("\\/");
27 } else {
28 filtered.append(c);
29 }
30 prevChar = c;
31 }
32 value = String.valueOf(filtered);
33 }
34 out.print(value);
35 %>2、页面运用,代码示例如下:
01 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
02 <%@ taglib tagdir="/WEB-INF/tags/format" prefix="format" %>
03
04 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
05 <html>
06 <head>
07 <title></title>
08
09 <meta http-equiv="pragma" content="no-cache">
10 <meta http-equiv="cache-control" content="no-cache">
11 <script type="text/javascript">
12 function doTest() {
13 //var testValue = '${valueFromJava }';// 这种复制若valueFromJava中含有特殊字符,此时会报错
14 var testValue = '<format:enter value="${s.content }" />';// 这种处理就……
15 }
16 </script>
17 </head>
18
19 <body>
20
21 </body>
22 </html>注:js中的特殊字符有:转义序列 字符
\b 退格
\f 走纸换页
\n 换行
\r 回车
\t 横向跳格 (Ctrl-I)
\' 单引号
\" 双引号
\\ 反斜杠
转载于:https://my.oschina.net/u/140625/blog/59278
js赋值时特殊字符完美处理方案相关推荐
- 完美解决你使用eclipse编辑jsp、js文件时,经常出现卡死的问题
使用Eclipse编辑jsp.js文件时,经常出现卡死现象,解决方法如下: 1.取消验证 windows–>perferences–>validation 把 除了manual 下面的全部 ...
- js正则验证特殊字符
js正则验证特殊字符 方案一 var regEn = /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im,regCn = /[·!#¥(--)::& ...
- js赋值改变后原来的东西也改变了,影响了好几个其它使用同一个源数据的原因以及解决方法
[原因]:数组赋值目测在php/js这两种语言中的赋值都是应用传递(所谓引用传递就是所谓的赋值其就是共享同一个地址),一般的字串整型等数据类型都是值传递所以不存在这类情况 [解决方法]:在进行数组间赋 ...
- HTML、JS、JSON特殊字符 - JS到HTML特殊字符转换
JS到HTML特殊字符转换 用JSTL标签显示不转义的字符:<c:out value="<%=nickname %>" escapeXml="false ...
- JS 异步编程都有哪些方案
JS 异步编程都有哪些方案 先一起来回想一下,我们在日常开发中都用过哪些 JS异步编程的方式?总结起来无外乎有这几种:回调函数.事件监听.Promise.Generator.async/await ...
- js赋值之后原数据被改变
项目场景: 在做设备管理功能时,设备借出按钮已经借出后,再次借出会带出原来选的中介人员的信息 原因分析: js赋值问题导致,对象赋值都是引用赋值,被赋值的变量和赋值变量的地址是同一个. 解决方案: t ...
- Eclipse编辑jsp、js文件时,经常出现卡死现象解决汇总
使用Eclipse编辑jsp.js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲.将所有用过的方法罗列如下: 1.取消验证 windo ...
- LESS-Middleware:Node.js 和 LESS 的完美搭配
LESS 是一个编写 CSS 的很好的方式 ,让你可以使用变量,嵌套规则,混入以及其它许多有用的功能,它可以帮助您更好地组织你的 CSS 代码. 最近我一直在研究 Node.js ,并想用 less- ...
- 在stringgrid的drawcell事件处理过程中,给单元格赋值时,要用textout输出,不要像一般给cell[i,j]赋值那样。
在stringgrid的drawcell事件处理过程中,给单元格赋值时,要用textout输出,不要像一般给cell[i,j]赋值那样.
- 使用 C++0x 时 make_shared 完美转发构造函数参数的测试编译器
使用 C++0x 时 make_shared 完美转发构造函数参数的测试编译器 实现功能 C++实现代码 实现功能 使用 C++0x 时 make_shared 完美转发构造函数参数的测试编译器 C+ ...
最新文章
- 在读研、竞赛和实习中追求平衡
- android ui 最新教程,Android更新UI的五种方式,androidui五种
- n个数分为m堆有多少种分法(青岛理工邀请赛)动态规划
- android弹窗不能手动关闭_3大类APP弹窗提醒方式总结
- java return true false_javascript中return,return true,return false三者的用法及区别
- MYSQL中取当前周/月/季/年的第一天与最后一天
- 初中女生数学不好能学计算机,初中数学成绩好的女生,多半有这3个“小特征”,学渣可装不来!...
- 《BI那点儿事》数据流转换——百分比抽样、行抽样
- Linux内核模块静态加载的顺序
- 朱松纯:三读《赤壁赋》,从人工智能的角度解读“心”与“理”的平衡
- secoclient
- tensorflow 张量
- 潍坊市计算机培训机构,潍坊电脑培训中心办公软件
- 计算机视觉及图像处理领域会议,CCF推荐(A类,B类,C类)
- 开始数据治理时三个常见的陷阱和解决方法
- 如何关闭计算机触摸鼠标,怎么关闭笔记本键盘-笔记本电脑如何禁用触摸板
- python开发板卡驱动开发_IC卡驱动程序开发
- 配音是怎么制作出来的,想做出让人惊艳的配音,只需一个小技巧
- java遍历json数据_Java 如何遍历JsonObject对象
- python读写文件的语句_用Python读写文件指南