1

我有以下格式的文本变量 -

value1|34|value2|45|value3|67|value4|687|

现在我只有文本“ value3”,我必须从上面的字符串中删除该值及其关联的数字。删除它后,我必须得到 -

value1|34|value2|45|value4|687|

注意:管道中的数字以其值字符串为前缀。前 - 值|56|。因此,如果我必须删除一个值,我必须将其连同其编号一起删除。

4

3 回答 3

2

看起来您可以从使用 JSON 之类的存储格式中受益。

'value1|34|value2|45|value3|67|value4|687|'.replace(/value3\|\d+\|/,'')
于 2012-06-21T13:07:09.060 回答
1
var input = 'value1|34|value2|45|value3|67|value4|687|',
    remove = 'value3',
    result = input.replace(RegExp(remove + '\\|\\d+\\|'), '');
console.log(result); // 'value1|34|value2|45|value4|687|'
于 2012-06-21T13:05:17.937 回答
1

你可以

var s = "value1|34|value2|45|value3|0000|value4|687|";
var r = "value3";

s = s.replace(new RegExp("(?:^|\\|)" + r + "\\|\\d+"), "")

包括 start-guard(不匹配 xxxvalue3)

于 2012-06-21T13:11:43.713 回答