json包含单双引号问题解决方案

原创作品 转载请注明出处

最近项目中 遇到需要JSON传数据 但是某个字段 里面可能含有 双引号和单引号 导致出现错误

为了方便 写了一个工具类,比较好用。

支持“链式编程”

分享给大家

360网盘下载地址: 访问密码 79f3

效果DEMO:

JsonQuotesUtil.js

/** * 解决json传输数据时存在 同时存在单引号和双引号的问题 * * 思路: * 将 单双引号用不容易在字符串中出现的字符分别替换 * 在后台 分别用过单双引号替换掉即可 * 注:可以传入字符串 也可以传入字符串数组 * * author: 明明如月 QQ 605283073 * time:2015年5月19日15:33:44 */ function JsonQuotesUtil() { var defualtSingleQuotePlaceholder="s%0";//默认单引号占位符 var defualtDoubleQuotePlaceholder="d%1";//默认双引号占位符 var singleQuotePlaceholder=defualtSingleQuotePlaceholder;//单引号占位符 var doubleQuotePlaceholder=defualtDoubleQuotePlaceholder;//双引号占位符//设置单引号占位符(建议起不容易出现的字符) this.setSingleQuotePlaceholder = function(single) { singleQuotePlaceholder=single; return this; }//设置双引号占位符(建议起不容易出现的字符) this.setDoubleQuotePlaceholder = function(double) { doubleQuotePlaceholder=double;return this; }//恢复默认单引号和双引号占位符 this.restoreDefaults = function() {singleQuotePlaceholder=defualtSingleQuotePlaceholder;doubleQuotePlaceholder=defualtDoubleQuotePlaceholder; return this; }//用单引号占位符替换单引号 并返回替换后的字符串 this.replaceSingleQuote=function (str) {if(str instanceof Array)//如果是数组分别替换 {for(var i=0;i<str.length;i++){str[i]= str[i].replace(/'/g, singleQuotePlaceholder);} }else {str= str[i].replace(/'/g, singleQuotePlaceholder); }return str; }//用双引号替换符替换双引号 并返回替换后的字符串 this.replaceDoubleQuote = function (str) {// return str.replace(/"/g, doubleQuotePlaceholder);if(str instanceof Array)//如果是数组分别替换 {for(var i=0;i<str.length;i++){str[i]= str[i].replace(/'/g, doubleQuotePlaceholder);} }else {str= str[i].replace(/'/g, doubleQuotePlaceholder); } return str; } this.replaceSingleAndDoubleQuote = function(str) {// return str.replace(/'/g,singleQuotePlaceholder).replace(/"/g, doubleQuotePlaceholder); if(str instanceof Array)//如果是数组分别替换 {alert("1");for(var i=0;i<str.length;i++){alert(str[i]);str[i]= str[i].replace(/'/g,singleQuotePlaceholder).replace(/"/g, doubleQuotePlaceholder);} }else {str= str.replace(/'/g,singleQuotePlaceholder).replace(/"/g, doubleQuotePlaceholder); } return str; }}demo.js 使用范例:/** * Created by Administrator on 2015/5/19 0019. */$(function(){//替换单双引号按钮的点击事件$("#show").click(function(){var sourceStr =$("#sourceStr").val();//获取需要替换字符/* 使用方法1 创建对象并自定义 单双引号占位符var jsonQuotesUtil = new JsonQuotesUtil().setSingleQuotePlaceholder("%^^").setDoubleQuotePlaceholder("&&");//创建对象(同时自定义单双引占位符)*//* 使用方法2 自定义对象并自定义 单双引号占位符var jsonQuotesUtil = new JsonQuotesUtil();//创建对象使用默认单双引号占位符jsonQuotesUtil.setSingleQuotePlaceholder("%^^");jsonQuotesUtil.setDoubleQuotePlaceholder("##");*/// jsonQuotesUtil.restoreDefaults();//恢复默认的单双引号占位符/* 使用方法3 自定义对象并自定义 单双引号占位符var jsonQuotesUtil = new JsonQuotesUtil();//创建对象使用默认单双引号占位符*/var jsonQuotesUtil = new JsonQuotesUtil();//创建对象使用默认单双引号占位符var single =$("#single").val();//获取 单引号占位符var double = $("#double").val();//获取输入的双引号占位符if($.trim(single)!=""){jsonQuotesUtil.setSingleQuotePlaceholder(single);//设置单引号占位符}if($.trim(double)!=""){jsonQuotesUtil.setDoubleQuotePlaceholder(double);//设置双引号占位符}var reuslt = jsonQuotesUtil.replaceSingleAndDoubleQuote(sourceStr);//同时替换单双引号$("#replaceResult").html(reuslt);//显示替换后的字符串});function arrayTest()//支持数组每个字符串的替换(没有调用){var jsonQuotesUtil = new JsonQuotesUtil();//创建对象使用默认单双引号占位符var sourceStr = new Array();sourceStr[0]="dfdfd'dfdf";sourceStr[1]="dfdfd\&;sfdsfsd";alert("sourceStr"+sourceStr);var reuslt = jsonQuotesUtil.replaceSingleAndDoubleQuote(sourceStr);//同时替换单双引号alert( "after:"+reuslt);}});

我没啥文化,,来求助大家了. 古代的,现在的. 都行

json包含单双引号问题解决方案

相关文章:

你感兴趣的文章:

标签云: