最近在做项目时,遇到一个问题。当在js脚本中,拼接生成一个tr,然后添加到一个表格里。

        //假定testval是从后台传过来的数据var testval = "含有'半角单引号的字符串";//向表格中添加行数据function BindTable() {var trval = "<tr><td><a href = '#' onclick =\"BindText('" + testval + "')\">测试</a></td></tr>";$("#EscapeTable").append(trval);}//向某文本框显示当前选中行的数据function BindText(textval) {document.getElementById("Text1").value = textval;}

当执行BindTable(),向表格EscapeTable添加上这一行数据后,单击超连接"测试"时,没有执行BindText()方法。
此时感觉很奇怪,为什么单击"测试",没有执行BindText()方法。经过调试发现,原来此testval值有特殊的地方,就是含有单引号。于是把单引号去掉后,就可以正常执行BindText()方法。

那么为什么有单引号,就不执行BindText()方法呢?原因是:如果含有半角单引号(全角没有问题)的字符串,作为BindText()的参数,那么

此行代码

var trval = "<tr><td><a href = '#' onclick =\"BindText('" + EscapeChar(testval) + "')\">测试</a></td></tr>";

生成的html代码就是

<tr><td><a href = '#' onclick ="BindText('含有'半角单引号的字符串')">测试</a></td></tr>

此时生成的BindText参数的格式是不正确的。

找到问题就好解决了,于是写了一个方法,把testval中的单引号,进行转义

//向表格中添加行数据function BindTable() {var trval = "<tr><td><a href = '#' onclick =\"BindText('" + EscapeChar(testval) + "')\">测试</a></td></tr>";$("#EscapeTable").append(trval);}//向某文本框显示当前选中行的数据function BindText(textval) {document.getElementById("Text1").value = textval;}//转换方法function EscapeChar(HaveSpecialval) {//转换半角单引号HaveSpecialval = HaveSpecialval.replace(/\'/g, "\\\'");//也可以使用&acute;HaveSpecialval = HaveSpecialval.replace(/\'/g, "&acute;");return HaveSpecialval;}

如果参数中含有半角双引号时,也可以使用转义的方法处理,但是不能使用下面这种方式

//转换半角双引号HaveSpecialval = HaveSpecialval.replace(/\'/g, "\\\"");

\"是javascript的转义格式,html语言无法对\"进行解析,此时要使用html的转义字符&&quot;或者"

            HaveSpecialval = HaveSpecialval.replace(/\"/g, "&quot;");HaveSpecialval = HaveSpecialval.replace(/\"/g, """);

html转义字符要以&开头 ;结尾 中间不能有空格;

  

转载于:https://www.cnblogs.com/shanaihuan/archive/2012/11/04/2753009.html

js方法参数中含有单引号双引号的处理相关推荐

  1. python中的单引号双引号和三引号

    python的单引号和双引号没有本质的区别,而三引号有两种作用:注释和换行 一. 单引号中可以包含双引号,双引号中可以包含单引号 print("好好学习,'天天向上'")结果: 好 ...

  2. php中echo单引号双引号及大括号的作用

    单引号写什么输出什么,而双引号会替换变量值.双引号里加大括号可以理解为相抵消. $var=1; #下面三种结果一样,均是1 echo $var; echo "$var"; echo ...

  3. php 中的单引号 双引号 反引号的作用

    字符串的写法 字符串以单.双或倒引号围住分别有不同的义意. 单引号 例如: $str = 'An apple a day keeps the docter away.' 当字符串出现 ' 符号时,必须 ...

  4. js拼装html单引号双引号,js、html中的单引号、双引号及其转义使用

    js.html中的单引号.双引号及其转义使用 在js中对相关字符做判断或取值的时候很多情况下都会用到这些. ------ 在一个网页中的按钮,写onclick事件的处理代码,不小心写成如下: IE提示 ...

  5. js html 单引号,JS 和 HTML 中的单引号与双引号

    JS中的单引号与双引号 HTML中的单引号与双引号很简单,就是两个字符实体: 显示 描述 实体名称 实体编号 " 双引号.引号 " " ' 单引号.撇号 ' ' x 1 ...

  6. html中单引号与双引号区别,JS 和 HTML 中的单引号与双引号

    JS中的单引号与双引号 HTML中的单引号与双引号很简单,就是两个字符实体: 显示 描述 实体名称 实体编号 " 双引号.引号 " " ' 单引号.撇号 ' ' x 1 ...

  7. 已解决Python向数据库插入数据的字符串中含有单引号或双引号报错

    已解决Python向数据库插入数据的字符串中含有单引号或双引号报错:(102, b"Incorrect syntax near 'S'.DB-Lib error message 20018, ...

  8. 双引号用html语言写,js、html中的单引号、双引号及其转义使用.doc

    js.html中的单引号.双引号及其转义使用 js.html中的单引号.双引号及其转义使用js.html中的单引号.双引号及其转义使用这几天一直在画页面,身为开发人员的我之所以要画页面是因为当前项目中 ...

  9. 达梦8数据库更新语句包含单引号双引号引起转义字符执行失败解决方法全网唯一

    达梦数据库更新语句包含单引号双引号引起执行失败解决方法全网唯一 如果一个更新的UPDATE更新语句的内容包含单引号',会引起执行错误! 错误的类型不止这一种,但是都是因为内容里面包含转义字符单引号引起 ...

最新文章

  1. Java项目:在线考试系统(单选,多选,判断,填空,简答题)(java+Springboot+ssm+mysql+html+maven)
  2. jQuery中的插件机制
  3. 用OpenCV实现页面扭曲矫正
  4. zend optimizer php5.5,PHP_PHP5.3以上版本安装ZendOptimizer扩展,现在很多PHP程序都需要ZendOptimi - phpStudy...
  5. mysql怎么设置主键增长序列_mysql 如何设置自动增长序列 sequence(一)
  6. flutter持久化_【Flutter 实战】大量复杂数据持久化
  7. nodejs中文件上传并限制图片大小
  8. MyEclipse 下载、安装教程
  9. linux wakeup,linux内核3.4基于wakeup
  10. C++ string类的使用
  11. @@identity
  12. 长角牛网络监听 arp欺骗
  13. 关于人工智能企业商标退化及商标保护
  14. 华为云Bu【nononoknow】
  15. 明天老外要上课,先准备一下词汇:)
  16. vue router html模板,vue.router
  17. 315道Python面试题答案
  18. 人工智能前沿——AI技术在医疗领域的应用(二)
  19. 修复损坏的gzip压缩文件原理和修复方法
  20. 关于浏览器调试器(Sources)的使用

热门文章

  1. CMPB 2021|U-Net:又一魔改U-Net应用于腹部肝脏分割任务!
  2. 【机器学习入门到精通系列】插值与拟合
  3. python【力扣LeetCode算法题库】217-存在重复元素
  4. dell服务器 稳定性,设计优秀管理方便 戴尔R710服务器评测
  5. python3 模块编写_python3 _pickle模块详解
  6. 在合并单元格中数组公式无效_Excel中合并单元格困扰多年的难题,终于被我搞定了...
  7. qt的exe启动时隐藏图标_系统小技巧:Win10桌面图标问题多 常见3种这么解
  8. c mysql封装 jdbc_利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现
  9. js中计时器setTimeout、setInterval、requestAnimationFrame区别
  10. 当下网络营销市场中为何企业可通过网络营销提升自我价值?