原创作品 转载请注明出处
为了方便 写了一个工具类,比较好用。
支持“链式编程”
分享给大家
360网盘下载地址:http://yunpan.cn/cjCrRZj9uc8hE 访问密码 79f3
效果DEMO:
JsonQuotesUtil.js
/**
* 解决json传输数据时存在 同时存在单引号和双引号的问题
*
* 思路:
*
* 1 首选将 双引号转义
*
* 2 将 单双引号用不容易在字符串中出现的字符分别替换
* 在后台 分别用过单双引号替换掉即可
*
* 注:可以传入字符串 也可以传入字符串数组
* 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
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);//同时替换单双引
号
// var reuslt = jsonQuotesUtil.escapeDoubleQuote(sourceStr)
$("#replaceResult").html(reuslt);//显示替换后的字符串
});
$("#escape").click(function(){
var sourceStr =$("#sourceStr").val();//获取需要替换字符
var reuslt = new JsonQuotesUtil().escapeDoubleQuote(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);
}
});
JsonQuotesUtil Demo.html
JsonQuotesUtil Demo
请输入带有单双引号的字符串:
单引号占位符: 双引号占位符: