删除字符串中出现的所有文本

Val*_*luk 3 javascript string jquery

假设我在JavaScript中有一个字符串,如下所示:

var str = "Item%5B9%5D.Something%5B0%5D.Prop1=1&Item%5B9%5D.Something%5B0%5D.Prop2=False&Item%5B9%5D.Something%5B0%5D.Prop3=10%2F04%2F2013+00%3A00%3A00&Item%5B9%5D.Something%5B1%5D.Prop1=2&Item%5B9%5D.Something%5B1%5D.Prop2=False&Item%5B9%5D.Something%5B1%5D.Prop3=10%2F04%2F2013+00%3A00%3A00&Item%5B9%5D.Something%5B2%5D.Prop1=3&Item%5B9%5D.Something%5B2%5D.Prop2=False&Item%5B9%5D.Something%5B2%5D.Prop3=29%2F04%2F2013+00%3A00%3A00&Item%5B9%5D.Something%5B3%5D.Prop1=4&Item%5B9%5D.Something%5B3%5D.Prop2=False&Item%5B9%5D.Something%5B3%5D.Prop3=29%2F04%2F2013+00%3A00%3A00"
Run Code Online (Sandbox Code Playgroud)

并希望它看起来像这样:

var str = "Something%5B0%5D.Prop1=1&Something%5B0%5D.Prop2=False&Something%5B0%5D.Prop3=10%2F04%2F2013+00%3A00%3A00&Something%5B1%5D.Prop1=2&Something%5B1%5D.Prop2=False&Something%5B1%5D.Prop3=10%2F04%2F2013+00%3A00%3A00&Something%5B2%5D.Prop1=3&Something%5B2%5D.Prop2=False&Something%5B2%5D.Prop3=29%2F04%2F2013+00%3A00%3A00&Something%5B3%5D.Prop1=4&Something%5B3%5D.Prop2=False&Something%5B3%5D.Prop3=29%2F04%2F2013+00%3A00%3A00"
Run Code Online (Sandbox Code Playgroud)

即删除所有项目%5BX%5D.部分

我该怎么做呢?我想过使用类似的东西:

str = str.substring(str.indexOf('Something'), str.length);
Run Code Online (Sandbox Code Playgroud)

但显然只会删除第一次出现.

此外,%5B和%5D之间的数字可以是任何数字,不一定是9.

这似乎应该很简单,但出于某种原因,我很难过.我在SO上发现了一些相似的东西,但没有任何东西可以处理所有上述标准.

Den*_*ret 6

您可以使用正则表达式:

str = str.replace(/Item[^.]+\./g, '');
Run Code Online (Sandbox Code Playgroud)

或者如果你想要更精确的东西,因为你想要保持Item%6B3%4D:

str = str.replace(/Item%5B.%5D\./g, '');
Run Code Online (Sandbox Code Playgroud)