替换部分属性值

Posted

技术标签:

【中文标题】替换部分属性值【英文标题】:replace part of attribute value 【发布时间】:2014-12-16 19:04:51 【问题描述】:

我有一个包含以下 div 的页面

<div class="info" attribute-one="value one" attribute-two="value two" json="see below"></div>

“json”属性填充了类似于

的压缩JSON字符串

  "serviceContext": "\/",
  "state": "READY",
  "url": "http://domain.com/some-url.extension",
  "zoomedPageWidth": 768,
  "hits": [

  ],
  "httpContentLoaded": 0,
  "resource": "\/session\/zc7d2c08-90d8-4b2d-97f8-a455b28c4e7d\/",
  "httpContentLength": 660032

现在我想替换 JSON 字符串中的资源参数,来自:

"resource": "\/session\/bc7d2c28-90d9-4b2d-97f8-a455b28c4e7d\/",

"resource": "http:\/\/domain.com\/page\/session\/bc7d2c28-90d9-4b2d-97f8-a455b28c4e7d\/",

但我不知道如何在 javascript 中使用正则表达式来做到这一点。有好心人帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

我会做的是跳过正则表达式,并解析为 JSON:

var jsonObject = JSON.parse(theJsonString);
jsonObject.resource = "http://domain.com/page" + jsonObject.resource;
theJsonString = JSON.stringify(jsonObject);

您可以将theJsonString 放入元素中。

【讨论】:

我会发布相同的答案:D【参考方案2】:

您可以使用一些 JQuery 和 JOSN 函数

Take a look at this fiddle

html

<div id="test" json='"serviceContext": "\/", "state": "READY","url": "http://domain.com/some-url.extension","zoomedPageWidth": 768,"hits": [],"httpContentLoaded": 0,"resource":"\/session\/zc7d2c08-90d8-4b2d-97f8-a455b28c4e7d\/","httpContentLength": 660032'></div>

和 JS:

var testElement = $('#test'),
    a = testElement.attr('json');
    o = JSON.parse(a);

o.resource = 'http://domain.com/page/session' + o.resource;
testElement.attr('json', JSON.stringify(o));

【讨论】:

以上是关于替换部分属性值的主要内容,如果未能解决你的问题,请参考以下文章

oracle中,如何批量替换某字段的部分值,该字段其他部分保持不变?

ArcGIS自定义工具箱-字段值部分替换

用字典值替换 Pandas Dataframe 中的部分字符串

用 R 变量的值替换字符串的特定部分

JSONObject遍历并替换部分json值

Smartedit - 用户组无法上传/替换/删除组件的媒体属性而不是管理组的一部分