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赋值时特殊字符完美处理方案相关推荐

  1. 完美解决你使用eclipse编辑jsp、js文件时,经常出现卡死的问题

    使用Eclipse编辑jsp.js文件时,经常出现卡死现象,解决方法如下: 1.取消验证 windows–>perferences–>validation 把 除了manual 下面的全部 ...

  2. js正则验证特殊字符

    js正则验证特殊字符 方案一 var regEn = /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im,regCn = /[·!#¥(--)::& ...

  3. js赋值改变后原来的东西也改变了,影响了好几个其它使用同一个源数据的原因以及解决方法

    [原因]:数组赋值目测在php/js这两种语言中的赋值都是应用传递(所谓引用传递就是所谓的赋值其就是共享同一个地址),一般的字串整型等数据类型都是值传递所以不存在这类情况 [解决方法]:在进行数组间赋 ...

  4. HTML、JS、JSON特殊字符 - JS到HTML特殊字符转换

    JS到HTML特殊字符转换 用JSTL标签显示不转义的字符:<c:out value="<%=nickname %>" escapeXml="false ...

  5. JS 异步编程都有哪些方案

    JS 异步编程都有哪些方案   先一起来回想一下,我们在日常开发中都用过哪些 JS异步编程的方式?总结起来无外乎有这几种:回调函数.事件监听.Promise.Generator.async/await ...

  6. js赋值之后原数据被改变

    项目场景: 在做设备管理功能时,设备借出按钮已经借出后,再次借出会带出原来选的中介人员的信息 原因分析: js赋值问题导致,对象赋值都是引用赋值,被赋值的变量和赋值变量的地址是同一个. 解决方案: t ...

  7. Eclipse编辑jsp、js文件时,经常出现卡死现象解决汇总

    使用Eclipse编辑jsp.js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲.将所有用过的方法罗列如下: 1.取消验证 windo ...

  8. LESS-Middleware:Node.js 和 LESS 的完美搭配

    LESS 是一个编写 CSS 的很好的方式 ,让你可以使用变量,嵌套规则,混入以及其它许多有用的功能,它可以帮助您更好地组织你的 CSS 代码. 最近我一直在研究 Node.js ,并想用 less- ...

  9. 在stringgrid的drawcell事件处理过程中,给单元格赋值时,要用textout输出,不要像一般给cell[i,j]赋值那样。

    在stringgrid的drawcell事件处理过程中,给单元格赋值时,要用textout输出,不要像一般给cell[i,j]赋值那样.

  10. 使用 C++0x 时 make_shared 完美转发构造函数参数的测试编译器

    使用 C++0x 时 make_shared 完美转发构造函数参数的测试编译器 实现功能 C++实现代码 实现功能 使用 C++0x 时 make_shared 完美转发构造函数参数的测试编译器 C+ ...

最新文章

  1. 在读研、竞赛和实习中追求平衡
  2. android ui 最新教程,Android更新UI的五种方式,androidui五种
  3. n个数分为m堆有多少种分法(青岛理工邀请赛)动态规划
  4. android弹窗不能手动关闭_3大类APP弹窗提醒方式总结
  5. java return true false_javascript中return,return true,return false三者的用法及区别
  6. MYSQL中取当前周/月/季/年的第一天与最后一天
  7. 初中女生数学不好能学计算机,初中数学成绩好的女生,多半有这3个“小特征”,学渣可装不来!...
  8. 《BI那点儿事》数据流转换——百分比抽样、行抽样
  9. Linux内核模块静态加载的顺序
  10. 朱松纯:三读《赤壁赋》,从人工智能的角度解读“心”与“理”的平衡
  11. secoclient
  12. tensorflow 张量
  13. 潍坊市计算机培训机构,潍坊电脑培训中心办公软件
  14. 计算机视觉及图像处理领域会议,CCF推荐(A类,B类,C类)
  15. 开始数据治理时三个常见的陷阱和解决方法
  16. 如何关闭计算机触摸鼠标,怎么关闭笔记本键盘-笔记本电脑如何禁用触摸板
  17. python开发板卡驱动开发_IC卡驱动程序开发
  18. 配音是怎么制作出来的,想做出让人惊艳的配音,只需一个小技巧
  19. java遍历json数据_Java 如何遍历JsonObject对象
  20. python读写文件的语句_用Python读写文件指南

热门文章

  1. Hadoop HA详解
  2. 面向对象练习——校园管理系统
  3. Noip2010提高组总结
  4. Android核心分析 之二方法论探讨之概念空间篇
  5. [转] Java/JSP中使用JDBC连接SQL Server 2005
  6. centos禁ping
  7. 最小方法ZOJ 1579 Bridge
  8. 通过千千静听歌词服务器下载歌词(Delphi版)
  9. 第12章 正则表达式与文件格式化处理
  10. 物流知识分享——浅析库存日结作业