Это пример форматирования регулярных выражений и использования методов string.split() и string.replace(). Здесь зачищается грубо отформатированная строка ввода, содержащая имена (первое имя идёт первым), разделённые пробелом, табуляцией и одним символом "точка с запятой". Затем порядок имён разворачивается (последнее имя идёт первым) и список сортируется.
<SCRIPT LANGUAGE="JavaScript1.2">// Строка name содержит несколько пробелов и табуляций, // и может иметь несколько пробелов между первым и последним именами. names = new String ( "Harry Trump ;Fred Barney; Helen Rigby ;\ Bill Abel ;Chris Hand ")document.write ("---------- Original String" + "<BR>" + "<BR>") document.write (names + "<BR>" + "<BR>")// Готовятся два патэрна и массив-хранилище. // Строка делится на элементы массива.// патэрн: возможен пробел, затем ; и затем снова возможен пробел pattern = /\s*;\s*/// Разбивка строки на куски, разделённые вышеуказанным патэрном, // и сохранение этих кусков в массиве nameList nameList = names.split (pattern)// новый патэрн: один или боле символов, затем пробелы, затем символы. // Скобки используются для "запоминания" части патэрна. // Запомненные части будут использованы позднее. pattern = /(\w+)\s+(\w+)/// Новый массив для хранения обрабатываемых имён. bySurnameList = new Array;// Вывести имя массива и заполнить этот новый массив // именами с разделением запятыми, последнее имя идёт первым. // // Метод replace удаляет всё совпадающее с патэрном // и замещает это запомненной строкой - второй запомненной частью, // с последующими запятой и пробелом, с последующей запомненной первой частью. // // Переменные $1 и $2 ссылаются на части, запомненные при совпадении патэрна.document.write ("---------- After Split by Regular Expression" + "<BR>") for ( i = 0; i < nameList.length; i++) { document.write (nameList[i] + "<BR>") bySurnameList[i] = nameList[i].replace (pattern, "$2, $1") }// отображение нового массива. document.write ("---------- Names Reversed" + "<BR>") for ( i = 0; i < bySurnameList.length; i++) { document.write (bySurnameList[i] + "<BR>") }// сортировка по фамилии, затем вывод отсортированного массива. bySurnameList.sort() document.write ("---------- Sorted" + "<BR>") for ( i = 0; i < bySurnameList.length; i++) { document.write (bySurnameList[i] + "<BR>") }document.write ("---------- End" + "<BR>")</SCRIPT>