регулярное выражение javascript заменяет пробелы в скобках

1

Как я могу использовать регулярное выражение JS, чтобы заменить все вхождения пространства словом SPACE, если между скобками? Итак, я хочу это:

myString = "a scentence (another scentence between brackets)"
myReplacedString = myString.replace(/*some regex*/)
//myReplacedString is now "a scentence (anotherSPACEscentenceSPACEbetweenSPACEbrackets)"

EDIT: что я пробовал это (я совершенно новый для регулярных выражений)

myReplacedString = myString.replace(/\(\s\)/, "SPACE");
  • 0
    Вы что-нибудь сделали, чтобы попытаться решить эту проблему? Мы с большей готовностью ответим на ваш вопрос, если вы сообщите нам, что вы уже пробовали. (Полезные ссылки для уточнения вопросов: как спросить , справочный центр )
Теги:

2 ответа

4

Возможно, вы можете использовать регулярное выражение:

/\s(?![^)]*\()/g

Это будет соответствовать любому пространству без открытой скобки впереди, без закрывающей скобки между пространством и открывающей скобкой.

Здесь демонстрация.

EDIT: Я не рассматривал случаи, когда предложения не заканчиваются скобками. Регулярное выражение @thg435 покрывает его, однако:

/\s(?![^)]*(\(|$))/g
  • 3
    Я бы сказал /\s(?![^)]*(\(|$))/ , Чтобы обработать что-то вроде xx (xx xx) xx xx .
  • 0
    @ thg435 Не рассматривал эту возможность, спасибо!
2

Я не уверен в одном регулярном выражении, но вы можете использовать два. Один, чтобы получить строку внутри (), затем другую, чтобы заменить ' ' на 'SPACE'.

myReplacedString = myString.replace(/(\(.*?\))/g, function(match){
    return match.replace(/ /g, 'SPACE');
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню