替换部分属性值
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中,如何批量替换某字段的部分值,该字段其他部分保持不变?