Друзья и подруги, всем привет!
И вновь я спешу поделиться с вам своим небольшим достижением.
Как ранее в моих записях упоминал, что мне предстоит работа по созданию учётных записей студентам.
Так как это трудоемкая работа, решил слегка облегчить себе.
Принцип создания учётной записи
В нашем техникуме система AD, куда и заносим учётки. Для создания имени учётной записи придерживаемся следующего правила:
- Учетная запись создается латинскими буквами
- Используется специальная (наша техникумовская) таблица транслитерации. Причём эта таблица напечатана на листочке, как памятка.
- Первая буква в названии учётки = Первая буква имени
- Далее фамилия студента
- Затем добавляется окончание (-St) тем самым указывается на то, что он студент.
В итоге, для студента
Попов Дмитрий будет выглядеть:
DPopov-St День первый: ПятницаВ пятницу мне дали зав.отделениями списки групп и я стал потихоньку забивать и сверять. И тут меня посетила мысль упростить создание имени учётки.
Так как я понемногу стал изучать javascript, решил на нём и сделать программку в html странице.
* Стал в интернете искать пример того, как люди осуществляют транслит на javascript. Нашёл пример с массивной основой транслита. Там одно поле textarea и кнопка. Нажимаешь на кнопку, и текст превращается в этом же поле в транслит.
* Изменил значения букв транслита на наши правила. Вроде заработало.
Но на этом мой мозг не успокоился.
* Создал ещё один textarea и заставил при нажатии на кнопку оставить текст в первом textarea в покое, а транслит перенести во второй textarea. Через 15 минут всё заработало.
На том рабочий день пятницы закончился.
* Придя домой я решил доделать свою задумку. Создал ещё одно поле textarea. Решил устроить поиск среди данных (списка) ФИО студента. Так как зав.отделениями дали списки в Word'овском формате и списком (1. Ф И О, новая строка, 2. ФИО).
* Через регулярные выражения устроил фильтровку. В итоге, поле textarea1 остается без изменения, поле textarea2 содержит транслит всего содержимого, поле textarea3 только ФИО транслитированного вида. На этом я пошёл спать.
День второй: Суббота* В субботу решил придумать как же из поля textarea3 вытащить Фамилию и Имя. И вновь пришли на помощь регулярные выражения. Теперь в поле textarea2 выводится список по строкам Фамилий в транслите, а в поле textarea3 Имена транслитом и так же построчно.
* Следующей задачей было Оставить в именах по первой букве. Да, можно было по другому сделать, но я вновь отфильтровал рег.выражением по первой букве.
* Теперь надо было "склеить" данные textarea2 с textarea3, причем содержимое 1 строки textarea2 соединить с 1ой строкой textarea3, плюс дописать "-St" в конце. Думал, есть фишка textarea2.String[i] + textarea3.String[i] Погуглив, не нашёл подобного.
* Решил сделать "финт ушами" - Результаты фильтровок преобразовать в два массива и там уже склеить. Добавив цикл, и правильно расставив переменные, в итоге, получилось.
То есть: поле textarea1 - Список обычный, поле textarea2 - транслит Ф.И., поле textarea3 - Долгожданные имена учеток, что соответствуют нашим критериям. На этом в субботу рабочий день закончился.
День третий: Воскресенье* Отдыхая дома за чашечкой чая, завтракая, меня посетила ещё одна мысль, а точнее, две:
1) Надо избавиться от textarea3.
2) Ведь когда я копирую Ф.И. и Учетку, мне надо убирать или стирать верхнюю запись из списка, чтобы не мешало и можно спокойно приступать к забиванию следующего студента.
* Стал думать, как бы убрать этот textarea3. Стал разбираться в последовательности фильтрации данных и как можно компактнее всё уместить. Потратив 2 часа, всё заработало!
Два поля теперь.
textarea1 - исходный текст. textarea2 - Имя учётки.
* Осталось решить вторую задачу. Надо было создать ещё одну кнопку между двух textarea, которая и будеть совершать удаление первой строки из каждого textarea.
* Долго думал как бы это сделать. В итоге, сделал фильтровку textarea1 с помощью рег.вырожения. Потом с помощью split создал массив, а потом благодаря splice удалил 1ый элемент, и вновь преобразовал в строки текста.
Получив положительный результат, создал похожую функцию для textarea2. И теперь, при нажатии на вторую кнопку удаляются первые строки в textarea. И если ещё раз нажать, то ещё одна строка удалена.
В итоге, выглядит это следующим образом:
1) Внешний вид полностью
2) Как выглядит пример транслита
СкриншотыСегодня забивая учётки мне было гораздо проще работать. Так как в основном Копированием-Вставкой занимался. Не пришлось ручками заносить имена учётных записей, глядя на листочек с нашей транслитерацией.
На этом всё на сегодня.
Спасибо, что дочитали до конца данную запись блога. Так как это самая большая запись по объёму. Но надеюсь, Вам было интересно прочитать.
P.S. данный способ реализации моей задумки может показаться не совсем правильным. Некоторые могут сказать, что можно было и по другому, проще. Но так как я только недавно стал изучать JS, мне свойственно ошибаться.
kolayuk_smart,
Я доволен своей проделанной работой...
Упростил тем самым 1/4 работы по забиванию и созданию учёток
0 ответить