2016-05-25 4 views

ответ

2

Вы можете использовать трубу |. В регулярном выражении это означает OR:

t = "<test>>".replace(/^<|>+$/g, ""); 
// "test" 

Но, конечно же, вы можете использовать другие способы, как:

t = "<test>>".replace(/[<>]/g, ""); 
// "test" 

или даже с матча:

t = "<test>>".match(/\w+/)[0]; 
// "test" 

Убедитесь, что вы добавили g -global flag при необходимости. Этот флаг обозначает все вхождения.

+0

первый из тех, что я искал, и я пробовал его, но не имел глобального флага, поэтому он заменял только первый < – MtnManChris

0

Попробуйте

t = t.replace(/^</, '').replace(/>+$/, ''); 

Если вы хотите его в одной строке, используйте | сочетать регулярное выражение .. Как этот

t = t.replace(/^<|>+$/g, ""); 

или захвата групп, как этот

t = t.replace(/^<(.*)>+$/g, '$1'); 
+0

OP специально запросил одно регулярное выражение ... – Siguza

+0

мой плохой .. прочитайте его как одну строку. ll отредактировать ответ –

1

Если я правильно понимаю, что вы хотите заменить только начало «<» символов и заканчивая «>» символов, попробуйте это один [>$^<]

var t = "<test>"; 
t = t.replace('/[>$^<]/', ''); 
+1

, это не сработало. Во-первых, это не регулярное выражение, поэтому он будет искать замену строкового литерала '[> $^<]' на ''. Во-вторых, если я делаю это регулярное выражение, он заменяет только < not the > – MtnManChris

+0

Фактически это будет работать, если вы добавите g для глобального флага ... t = t.replace (/ [> $^<]/g, ''); – MtnManChris

+0

О да, извините, я использовал цитаты вместо косой черты, проверьте мой обновленный ответ –