2016-04-08 3 views
2

Я пытаюсь создать фильтр, который разбивает все \n и присоединяется к ним как \n\n. Есть ли способ обойти все комбинации \n\n и нацеливать только на один \n? Проблема в том, что каждый раз, когда я не фокусирую вход, фильтр срабатывает и добавляет дополнительные пробелы в существующие двойные пробелы. работает скрипку: https://jsfiddle.net/oe7axeab/701/javascript split (' n') и не (' n n')

 filters: { 
     lyrics: { 
      write(input) { 
       var line = input, 
         bomb = line.split("\n"), 
         group = bomb.join("\n\n"); 

       return group; 
      }, 
     }, 
     marked: marked 
    } 
+2

попытка .Надеть ("\ п \ п", 'FOOBARBLABLABLA'); затем разделите сингл, а затем .replace («FOOBARBLABLABLA», «\ n \ n») назад – KoIIIeY

+1

https://jsfiddle.net/oe7axeab/702/ – KoIIIeY

+0

вы хотите заменить нечетные \ n на четные, т. е. в случае \ n \ n \ n вы хотите преобразовать это в \ n \ n \ n \ или не хотите касаться этого – abhinsit

ответ

1

Я пытаюсь создать регулярное выражение, где он будет выбрать только один экземпляр \ п и преобразовать его в \ п \ п

вар Str = «тест \ п test1 \ n \ n test2 \ n test3 \ n \ n ';

**var regex = /([^\n]+)\n([^\n]+)/g;** 

    if (str.match(regex)) { 
     str = str.replace(regex, "$1" + "\n\n" + "$2"); 
    } 

Выход: 'Тест \ п \ п test1 \ п \ п test2 \ п \ п test3 \ п \ п'

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