gpt4 book ai didi

javascript - 正则表达式和Javascript从字符串中删除数字

转载 作者:行者123 更新时间:2023-11-28 02:31:33 25 4
gpt4 key购买 nike

我有一个字符串:

 str =    'View:{
Name:"View1",
Image:{
BackgroundImage:"Image.gif",
Position: [0, 0],
Width: 320,
Height: 480
},

Button:{
BackgroundImage:"Button.gif",
Transition:"View2",
Position: [49, 80],
Width: 216,
Height: 71
},

Button:{
BackgroundImage:"Button2.gif",
Position: [65, 217],
Width: 188,
Height: 134
},'

我使用此正则表达式将“_#”添加到末尾有“:{”的元素

var i = 0;
str = str.replace(/([^:]+):{/g, function(m, p1) { return p1 + "_" + (++i).toString() + ":{"; });

输出为

str =    'View_1:{
Name:"View1",
Image_2:{
BackgroundImage:"Image.gif",
Position: [0, 0],
Width: 320,
Height: 480
},

Button_3:{
BackgroundImage:"Button.gif",
Transition:"View2",
Position: [49, 80],
Width: 216,
Height: 71
},

Button_4:{
BackgroundImage:"Button2.gif",
Position: [65, 217],
Width: 188,
Height: 134
},'

然后我用它做了很多事情,现在我需要从中删除“#”。我将如何删除那些 '#'

不是必要的,但我遇到的另一个问题是第一个正则表达式从 0 开始递增,并为每个元素提供下一个递增的数字。我正在尝试使每个元素的类型递增。像这样:

str =    'View_1:{
Name:"View1",
Image_1:{
BackgroundImage:"Image.gif",
Position: [0, 0],
Width: 320,
Height: 480
},

Button_1:{
BackgroundImage:"Button.gif",
Transition:"View2",
Position: [49, 80],
Width: 216,
Height: 71
},

Button_2:{
BackgroundImage:"Button2.gif",
Position: [65, 217],
Width: 188,
Height: 134
},'

对我在这里做错了什么有什么意见吗?

最佳答案

对于第一个问题,只需将 _\d+:{ 替换为 :{

对于第二种,每种类型都需要一个单独的计数器。试试这个:

var i = {};
str = str.replace(/([^:]+):{/g, function(m, p1) {
i[p1] = (i[p1] || 0)+1;
return p1 + "_" + i[p1].toString() + ":{";
});

关于javascript - 正则表达式和Javascript从字符串中删除数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14074376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com