Javascript: переворачиваем строки
На яваскрипте легко и приятно делать любой разбор строк, а не только удаление лишних разделителей. Брошу для памяти три функции, хорошо иллюстрирующие подход к разработке на основе регулярных выражений и стандартных методов языка для работы с массивами и строками.
Функции с именами на "reverse
" выполняют следующие задачи:
- переворот всей строки;
- переворот каждого слова в строке без изменения порядка слов;
- переворот порядка слов в строке, сами слова не меняются.
Входная строка предварительно числится от лишних разделителей функцией с именем alltrim
.
Вот вывод примера, ниже - его код, который можно выполнить, сохранив в файл типа .html
<div id="reverseStringDiv"></div> <script type="text/javascript"> function alltrim(p) { return p.replace (/\s+/g, " ").replace(/(^\s*)|(\s*)$/g, ''); } function reverseString (p) { return alltrim(p).split('').reverse().join(''); } function reverseEveryWordInString (p) { return alltrim(p).split(' ').map(function (x) { return x.split('').reverse().join(''); }).join(' '); } function reverseWordOrderInString (p) { return alltrim(p).split(' ').reverse().join(' '); } var s = "\t Строка для теста reverse-функций "; //Есть лишние разделители в строке var div = document.getElementById ('reverseStringDiv'); div.innerHTML = 'Исходная строка: '+ s + '<br>'; div.innerHTML += 'Функция reverseString: ' + reverseString(s) + '<br>'; div.innerHTML += 'Функция reverseEveryWordInString: ' + reverseEveryWordInString(s) + '<br>'; div.innerHTML += 'Функция reverseWordOrderInString: ' + reverseWordOrderInString(s); </script> <noscript>Нужен включённый Javascript для работы примера</noscript>
28.10.2017, 20:04 [3446 просмотров]