• Страница 1 из 1
  • 1
RegExp - пробелы
DSC
Дата: Вторник, 08.06.2010, 14:12 | Сообщение # 1
спикер
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
У меня проблема, есть допустим текст, в нём нужно все повторяющиеся пробелы заменить на восклицательный знак, но если находит в тексте кавычки, то, то что находится между ними, там не заменять пробелы, только те пробелы, которые вне кавычек!

aka Latro

Сообщение отредактировал DSC - Вторник, 08.06.2010, 14:24
  
Aleko
Дата: Среда, 09.06.2010, 02:31 | Сообщение # 2
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Code
<script>
// Рабочая функция

function removeSpaces(){
   var commas = []
   return arguments[0]
    .replace(/([^\\])((?:'(?:\\'|[^'])*')|(?:"(?:\\"|[^"])*"))/g,function(){
     commas.push(arguments[2])
     return arguments[1]+'~~~COMMAS'+commas.length+'~~~'
     })
    .replace(/\s+/g,'!')
    .replace(/~~~COMMAS(\d+)~~~/g,function(){
     return commas[--arguments[1]]
     })
   }
     
// Использование

removeSpaces('текст')
</script>

Спасибо в карму


Бесплатные обои.
  
UnderShot
Дата: Среда, 09.06.2010, 10:29 | Сообщение # 3
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Aleko, где можно почитать о работе с аргументами?

Очень важная тема!
Filmzona — онлайн фильмы.
  
Aleko
Дата: Среда, 09.06.2010, 10:32 | Сообщение # 4
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
UnderShot, не поверишь)

Бесплатные обои.
  
DSC
Дата: Среда, 09.06.2010, 10:32 | Сообщение # 5
спикер
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
Aleko, меня ещё интересует вот что, что значит --arguments[1], что значит что минусы до аргументов?

aka Latro
  
Aleko
Дата: Среда, 09.06.2010, 10:34 | Сообщение # 6
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Префиксный декремент - отнимание единицы и возвращение результата, аналог (arg = arg - 1)

Бесплатные обои.
  
DSC
Дата: Среда, 09.06.2010, 10:35 | Сообщение # 7
спикер
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
Aleko, ааа, ну тогда понятно, спс =)

aka Latro
  
DSC
Дата: Среда, 09.06.2010, 20:40 | Сообщение # 8
спикер
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
Aleko, а вот можешь сказать, что тут значит вот это:
Code
/([^\\])((?:'(?:\\'|[^'])*')|(?:"(?:\\"|[^"])*"))/
мне интересно именно первые скобки, остальное я понял


aka Latro
  
Aleko
Дата: Среда, 09.06.2010, 21:46 | Сообщение # 9
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Quote (DSC)
первые скобки

убедиться что первая скобка не экранирована


Бесплатные обои.
  
  • Страница 1 из 1
  • 1
Поиск:
© Studioad.ru 2006 · 2010. Использование материалов форума на сторонних ресурсах без прямой обратной ссылки строго запрещено. Хостинг от uCoz.