2016-05-06 2 views
2

У меня есть некоторые значения, такие как 10++10--10+-10-+. Вопрос в том, как заменить это значение на согласованное значение, используя единое выражение reg.i, необходимо ответить как 10+10-10-10-. средства дляКак заменить несколько значений в одном регулярном выражении?

'++'='+', 
'--'='-', 
'+-'='-', 
'-+'='-'; 

.please помочь мне решить мою проблему.

+0

Что относительно '- ++'? будет ли такое значение – rock321987

+0

Я понятия не имею, где вы получаете эти значения, но если есть какая-то «математическая логика», то не следует «-» = «+»? – ClasG

+0

Число только ah константа – prasanth

ответ

1

Match и захватить альтернативы, нужно заменить определенной строки, а затем с помощью замены обратного вызова, чтобы увидеть, какая группа соответствует и заменить соответственно:

var s = '10++10--10+-10-+'; 
 
document.body.innerHTML = s.replace(/(\+\+)|([-+]-|-\+)/g, function(m, g1, g2) { 
 
    return g1? "+" : "-"; 
 
});

(\+\+)|([-+]-|-\+) регулярное выражение содержит 2 альтернативные группы, так как есть две модели замены. Группа 1 (\+\+) будет соответствовать двойным плюсам, в то время как Группа 2 - ([-+]-|-\+) - соответствует и фиксирует --, +- и -+.

Смежные вопросы