Javascript替换字符串中出现的ID
在Javascript中,我试图: 从lib-One-5dc422e9中删除5dc422e9的ID 从lib-Six-5dc422e9gfg中删除5dc422e9gfg的ID,依此类推 我想保留JSON字符串中的所有内容,只想删除Javascript替换字符串中出现的ID,javascript,Javascript,在Javascript中,我试图: 从lib-One-5dc422e9中删除5dc422e9的ID 从lib-Six-5dc422e9gfg中删除5dc422e9gfg的ID,依此类推 我想保留JSON字符串中的所有内容,只想删除lib-*- { "data":{ "Library":{ "Checkout":{ "invoiceId":"12dfdf454546", "checkoutDetail":{
lib-*-
{
"data":{
"Library":{
"Checkout":{
"invoiceId":"12dfdf454546",
"checkoutDetail":{
"invoiceTransactionId":"5ab422e9",
"invoicePaymentDetail":{
"bookId":"lib-One-5dc422e9",
"checkoutPeriods":[
{
"startDate":"2017-04-14T19:00:00.000",
"endDate":"2017-05-19T19:00:00.000"
}
],
"invoice":{
"bookId":"lib-Six-5dc422e9gfg",
"checkObject":true
}
}
}
}
}
}
}
与一些正则表达式一起使用
replace()方法返回一个新字符串,其中包含替换所替换模式的部分或全部匹配项。模式可以是字符串或RegExp,替换可以是字符串或为每个匹配调用的函数。如果模式是字符串,则仅替换第一个匹配项
我使用的replace方法的第二个参数是回调函数
正则表达式
i、 e.:/(lib-[^-]+-)[^”]+/g
解释
[^-]
+查找任何不属于-
(lib-[^-]+-)
匹配类似于lib-*-
{
"data":{
"Library":{
"Checkout":{
"invoiceId":"12dfdf454546",
"checkoutDetail":{
"invoiceTransactionId":"5ab422e9",
"invoicePaymentDetail":{
"bookId":"lib-One-5dc422e9",
"checkoutPeriods":[
{
"startDate":"2017-04-14T19:00:00.000",
"endDate":"2017-05-19T19:00:00.000"
}
],
"invoice":{
"bookId":"lib-Six-5dc422e9gfg",
"checkObject":true
}
}
}
}
}
}
}
[^”]+
查找任何不是“
(id)的内容
解决方案
const data={“data”:{“Library”:{“Checkout”:{“invoiceId”:“12dfdf454546”,“checkoutDetail”:{“invoiceTransactionId”:“5ab422e9”,“invoicePaymentDetail”:{“bookId”:“lib-One-5dc422e9”,“checkoutPeriods”:[{“startDate”:“2017-04-14T19:00:00.000”,“endDate”:“2017-05-19T19:00:00.000”;“invoice”:“bookId”:“lib-Six-5dc422e9gfg”,“checkoutperiod”:“checkObject;
const res=JSON.stringify(data).replace(/(lib-[^-]+-)[^“]+/g,((uu,match)=>match);
log(JSON.parse(res,null,2))代码>如果ID的格式始终是这样的“lib-[word]”,则可以执行以下操作:
"lib-Six-5dc422e9gfg".split("-")[2]