ajax提交数据时,如何用正则表达式替换掉"号?
高洛峰
高洛峰 2016-11-10 11:21:23
0
3
865

有个需求,在向后台提交数据时,将"字符转义后再提交。

前台的数据既有对象格式(或数组),也有JSON格式,我会在ajax请求前,将数据统一转为JSON格式,这个时候,如果输入有",那么,会被转为",数据格式如下:

"{"houseTypeName":"\"good","coveredArea":"4567","tablePrice":"4567","buildingId":"9"}"

希望通过正则表达式,改为:

"{"houseTypeName":""good","coveredArea":"4567","tablePrice":"4567","buildingId":"9"}"

但是,我实验了/\"/g或者/"/g,都不行,会把所有"转义,这样肯定是不对的。

求正则大神支招,万分感谢!


高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(3)
三叔

可以在json对象转为字符串之前迭代整个json对象,对所有字符串的值进行替换后再将json转为字符串提交给后台

bVFkzX.png

//如果你本身是字符串,请先将字符串转为json对象(JSON.parse/或jQuery.parseJSON)
var json = {"houseTypeName":"\"good","coveredArea":"4567","tablePrice":"4567","buildingId":"9"};
for(var key in json)
    if(typeof json[key] ==='string')
        json[key] = json[key].replace(/"/g,'"');
console.log(JSON.stringify(json));


いいねを押す +0
学霸
   var a = {"houseTypeName":"\"good","coveredArea":"4567","tablePrice":"4567","buildingId":"9"};
        a = JSON.stringify(a);
        a = a.replace('\\"',""");        console.log(a);

bVFkzX.png

いいねを押す +0
三叔
$str  = '"{"houseTypeName":"\"good","coveredArea":"\"4567","tablePrice":"4567","buildingId":"9"}"';
$str = preg_replace('/\\\"/', '"', $str);
print_r($str);

PHP 的替换是这样,JS的也可以参照,希望采纳。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート