2017-01-24 3 views
-3

В чем разница между использованием [] и() в этой ситуации?Javascript Regex

var str = "Hel?lo the?re , Woul?d you like some ice?cream?"; 
 
var rExp = /[?+]/ig; 
 
var rExp2 = /(\?+)/ig; 
 

 
console.log(str.replace(rExp, "")); 
 
console.log(str.replace(rExp2, ""));

Могу ли я получить объяснение о том, когда использовать другой

+1

класс символов и захвата группы –

+0

Второй соответствует 'Хель ???? lo', первый из них не – Toto

+1

' [? +] 'Соответствует единственному полукокса,' ? 'или' + '. '(\? +)' соответствует 1 или более символам '?'. Выберите любой, который вам нужен. к вашим потребностям. –

ответ

0

Вы можете проверить два регулярных выражения со строкой, содержащей +, а также.

Первое регулярное выражение [?+]/ig ищет персонажа класса [] с ? и + буквально.

+ не работает как квантификатор внутри класса charcter.

Квантификатор должен быть размещен после класса символов [?]+, который не выглядит для одного или нескольких вопросительных знаков.

Второе регулярное выражение использует групповую конструкцию () с одним экранированным символом ? и квантором +.

Оба регулярных выражения имеют одинаковые флаги для нечувствительных i и глобальных g.

var str = "Hel?lo t+he?re , Wo+ul?d you like some ice?cre+am?"; 
 
var rExp = /[?+]/ig; 
 
var rExp2 = /(\?+)/ig; 
 

 
console.log(str.replace(rExp, "")); 
 
console.log(str.replace(rExp2, ""));