Показать сообщение отдельно
  #1 (permalink)  
Старый 11.03.2016, 12:21
Аватар для Alexander Belov
Профессор
Отправить личное сообщение для Alexander Belov Посмотреть профиль Найти все сообщения от Alexander Belov
 
Регистрация: 12.03.2015
Сообщений: 173

Оптимизация кода regEx
Привет!

Прошу помочь оптимизировать код.

Задание:
есть словосочетание, состоящее из 2-х слов, переданное аргументом в функцию.
Нужно поменять первые буквы в словах этого словосочетания местами.
Например, ввели "New York", должны получить "Yew Nork", "In Utero" -> "Un Itero" и т.д. Словосочетание всегда из 2-х слов.

Написал вот такую функцию:
function exchange( input ) {

var f = input.charAt(0),//первая буква первого слова в словосочетании

   str = input.substr( input.indexOf(" ") + 1 ),//второе слово в словосочетании

   s = str.charAt(0);//первая буква второго слова в словосочетании

   var e = f,//вводим резервную переменную для сохранения значения первой буквы

   f = s, //поменяли буквы местами
   s = e; //поменяли буквы местами

var pre1 = input.replace( input.charAt(0), f ),//заменили первую букву первого слова в словосочетании
    res2 = str.replace( str.charAt(0), s );//заменили первую букву второго слова

var res1 = pre1.substring(0, pre1.indexOf(" "));//"обрезали" второе слово в исходном словосочетании 

var result = res1 + " " + res2;//соединили изменённые слова в новое словосочетание = получили ответ

}

exchange("Dave Grohl")
//result = Gave Drohl


Но есть подозрение, что такая задача решается намного компактнее. Кому не сложно, напишите, пожалуйста, компактный пример решения, используя regEx.
Ответить с цитированием