2012-06-21 5 views
1

Я текстовую переменную в следующем формате -Regex - Удалить значение из строки с помощью JavaScript/Regex

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

Теперь я просто текст «value3» со мной, и я имею, чтобы удалить это значение вместе со своим связанным числом из указанной строки. После его снятия я должен получить:

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

Примечание: Цифры в трубопроводах имеют префикс строки значений. Ex - значение | 56 |. Поэтому, если мне нужно удалить значение, я должен удалить его вместе с его номером.

ответ

1

Вы можете

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

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

Включает запуск охранник (обыкновение матч xxxvalue3)

+0

Это удаление трубопровода перед значением. Например, после удаления значения3 я получаю - value1 | 34 | value2 | 45value4 | 687 | – NLV

+0

Если значение имеет специальный символ, подобный этому: «Test: (Has-Character Character)» не работает. Я не могу понять, какой из символов вызывает проблему. – NLV

+0

Я думаю, что круглые скобки() вызывают проблему. Как это исправить? – NLV

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|' 
+0

Не работает :(. Я все еще получаю ту же исходную строку после замены. – NLV

+0

@NLV Check обновление, я удалил опечатку –

+0

Если значение имеет некоторый специальный символ, подобный этому - «Тест: (Has-Characters)», он не работает. Я не могу определить, какой из символов вызывает вопрос – NLV

2

Похоже, вы могли бы использовать вместо этого что-то вроде JSON в качестве формата хранения.

'value1|34|value2|45|value3|67|value4|687|'.replace(/value3\|\d+\|/,'') 
Смежные вопросы