2019独角兽企业重金招聘Python工程师标准>>>

软件的一处功能用到EasyUI的表单提交,返回一串字符串,这串字符串里有一段HTML代码,正常的情况下这段HTML代码里的双引号“  是用 \ 转义过的。在IE中没问题,但是在Firefox和Chrome里那段字符串就自动加上了"而且原来的双引号还在。但是看响应内容的字符串就没有。用firebug调试的时候输出来的字符串就变了。

请求响应和IE中是这样

{"id":2,"title":"文章标题","info":"<span class=\"ke-insertfile\">详见附件。</span>"}

Firefox和Chrome中是这样

{"id":2,"title":"文章标题","info":"<span class="\&quot;ke-insertfile\&quot;">详见附件。</span>"}

没有经过任何处理,一串字符串自动就变成这样了。真不知道Firefox和Chrome怎么处理的。

这串字符串需要变成json对象,所以只能把多出来的东西替换掉。

js中replace方法只能替换第一个匹配的字符串不能做到全局。所以就上网查了下资料,得到的方法有几种:

1. str.replace(/oldString/g,newString)

2. str.replace(new RegExp(oldString,"gm"),newString)

3. 增加String 对象原型方法 replaceAll

String.prototype.replaceAll = function (s1,s2){
return this .replace( new RegExp(s1, "gm" ),s2);
}

我首先用的是直接增加String对象的原型方法,加上了以后任何一个地方都可以用。

但是试了将近一下午,由于我对正则表达式不怎么会用。最后怎么都匹配不了。

需要替换的有两个

把"\&quot;变成\"
把\&quot;"变成\"

第二个好弄,replaceAll('\\&quot;','\\"')这样直接就替换了。

第一个用replaceAll('\\\"&quot;','\\"')怎么也替换不了。

试了好多种,前面能匹配那个 ",然后 \ 就匹配不上。

直接用replaceAll('\\','')这样还报错,不能以 \ 结尾。

不管怎么匹配,"\&quot; 中匹配 " 可以,匹配后面的&quot;也可以,就是匹配不到 \

无奈今天早上突然想起来,换个方法,上面第2种方法其实和第三种一样。就换了第一种方法。

开始忽略了引号 replace(/"\\&quot;/g,'\\"')与replace('/"\\&quot;/g','\\"')是两个完全不一样的东西。

实践证明前面的是对的。前面的是表达式,后面的是字符串。然后我就豁然开朗。难道是这个原因?

于是就回去试replaceAll(),结果第一个参数必须是字符串,不支持表达式。只能还是用replace()的方法了。

转载于:https://my.oschina.net/u/568577/blog/417046

记一则js替换字符串的问题相关推荐

  1. js 替换字符串中所有满足条件的字符

    js 替换字符串中所有满足条件的字符 1.需求 2.实现 2.1 replace不知道的那些事 1.需求 网上找材料时,趴下来的文件是带其他条件的(我们不需要的),需要替换掉 2.实现 2.1 rep ...

  2. js替换字符串某个字符,js修改字符串中指定字符

    平时用到elementui时,经常遇到多级树形结构,但是后端往往给前端反的每一级字段不一致,如果写个遍历循环将其改为一致麻烦的,不如直接将后台发的数组转为字符串,再将字符串中不一致的字段替换成一致的即 ...

  3. js替换字符串中的空格,换行符

    js替换字符串中的空格,换行符\r\n或\n替换成 转载 为了让回车换行符正确显示,需要将 \n 或 \r\n 替换成 .同样地,将空格替换存  .这里我们通过正则表达式来替换. 一.替换所有的空格. ...

  4. js替换字符串指定索引位置的字符,单字符成指定的多个字符

    js替换字符串指定索引位置的字符,替换掉 String.prototype.replaceAt=function(index, replacement) {return this.substr(0, ...

  5. js——替换字符串中的空格

    题目背景: 在网络编程中,如果URL参数中含有特殊字符,如空格.#等,可导致服务器端无法获取正确的参数值.解决方案:将这些符号转换成浏览器可以识别的字符,转换规则是在%后面添加特殊字符ASCII码的十 ...

  6. Js替换字符串的几种方法

    替换字符串中的文本是 JavaScript 中的常见任务.本文研究几种用 replace 和正则表达式替换文本的方法. 替换单个字串 通常 JavaScript 的 String replace()  ...

  7. js替换字符串,替换路径

    路径替换 var str='src="/Uploads/baidu/img/ccbv.jpg"'var reg = new RegExp('src="/Uploads/' ...

  8. Js 替换字符串中全部“-”

    alert("abacacf".replace('a','9')); alert("abacacf".replace(/a/g,'9')); 第一个运行的结果 ...

  9. JS替换字符串中所有指定的字符(串)

    JavaScript中replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符. 而str.replace(/-/g ...

最新文章

  1. JAVA基础12-继承(3)
  2. 软件开发 thoughtworks 技术面_【软件开发】10月29日比赛详细预告
  3. 8篇SCI,总影响因子46.464!这位博士,毕业后带着女友一起援疆!
  4. UVa 10066 - The Twin Towers(LCS水题)
  5. 后台返回整个html转换成页面链接,利用html5的history.replaceState修改当前页面的URL...
  6. juqery合成事件toggle方法
  7. qqkey获取原理_通过call获取qqkey支持最新版
  8. 电子发票撤销 java_增值税电子发票作废如何办理?
  9. ionic android 教程,Ionic Capacitor Android环境搭建 创建项目
  10. 手机可以连上wifi,电脑连不上怎么办?
  11. 计算机xp怎么做备份,xp系统如何备份系统呢,详细教您如何备份
  12. xposed绕过模拟器检测_绝地求生刺激战场怎么避开模拟器检测?避开模拟器检测方法分享...
  13. kafka报错Error while fetching metadata with correlation
  14. Dubbo03【管理控制台和监控中心搭建】
  15. 【软件测试学习笔记】接口自动化测试基础-Day1 网络协议 2020-09-21
  16. 2022前端面试必问的几个小问题,你学费了吗?
  17. 抖音电商副总裁木青:抖音电商正在成为服饰行业的增量风口
  18. 化学公式编辑器怎么画聚合物?
  19. Unity之数据持久化——Json
  20. PyQt+moviepy音视频剪辑实战2:一个剪裁视频文件精华内容留存工具的实现

热门文章

  1. 简单的python画图代码_python opencv如何实现简易画图板 python opencv实现简易画图板代码...
  2. java mqtt客户端_java 实现mqtt发送和接收消息客户端具体用法及测试代码
  3. java开心消消乐代码_Vue实现开心消消乐游戏算法
  4. anylogic中如何构建复杂网络_如何对复杂网络建模所需要的数据进行预处理
  5. win10计算机优化技巧,让Win10系统运行更流畅的优化技巧
  6. jdbc dao 工具类mysql_Java基于JDBC实现事务,银行转账及货物进出库功能示例
  7. python在线作业_南开大学20春学期《Python编程基础》在线作业参考答案
  8. Java 操作符:Java 中操作符优先级、一二三元操作符及逻辑操作符的中德模佛定理
  9. C语言(CED)输出前k大的数(分治法/局部快速排序):给定一个数组,统计前k大的数并且把这k个数从大到小输出。
  10. Linux更换软件源(国内)阿里云