Введите с клавиатуры в одну строку фамилию, имя и отчество, разделяя их пробелом, напечатайте инициалы

Обновлено: 23.11.2024

или или В следующих разделах описано, как с ними работать.

Отображает свойство объекта, определяемое путем. Если также указан путь по умолчанию, он используется, если первое свойство не найдено. Для нескольких свойств ранг может быть указан в пути с помощью «?i», где i — ранг свойства. После этого номера можно указать остальную часть пути, если таковая имеется. См. пример ниже с профессиями. Формат и максимальные параметры объясняются ниже. Для параметра img можно установить значение «да» или «нет», чтобы отобразить значок свойства. По умолчанию это «нет». Для параметра txt можно установить значение «да» или «нет», чтобы отображать имя свойства или нет. По умолчанию «да». Параметры в квадратных скобках являются необязательными. Можно использовать либо 'prop', либо 'ifvalue'. Регистр имен (свойство NAME) Чтобы настроить отображение имени, вы можете использовать подсвойства имени. Пример:

будет отображаться полное имя и псевдоним. Пример: John F. Kennedy a.k.a Jack Случай мест (свойство PLAC) Можно принудительно указать уровень юрисдикции, который вы хотите отображать для места. Синтаксис строки, помещаемой в HTML-редактор, имеет следующий вид

отображает город (страну)

отображает город, пригород

отображает Город, Штат, Почтовый индекс - Страна Случай с несколькими свойствами, такими как род занятий (свойство OCCU) В случае нескольких свойств можно принудительно отображать ранг свойства. Синтаксис строки, помещаемой в HTML-редактор, имеет следующий вид

Это покажет второе занятие человека. Вы можете получить доступ к последнему значению с помощью ключевого слова LAST. Последнее значение может быть первым для одного человека и третьим для другого.

Если вы хотите отобразить дату второго занятия человека, код будет следующим:

отображает 10 февраля 1876 года как дату рождения (BIRT) format="$y" : отображает год даты события Пример:

отображает 1876 format="$P" : отображает полное местоположение события Пример:

отображает Hyde Park,02136,Boston,Suffolk,Massachusetts,USA format="$p" : отображает город события Пример :

отображает Boston format="$n" : отображает имя связанного объекта, если он существует. Пример:

отображает Марию СТЮАРТ, крестную мать события (CHR) format="$N" : отображает полное имя связанного объекта, если оно существует Пример:

отображает STUART, Marie (° 30 марта 1909 г. + 16 декабря 2008 г.) (I0298) format="$v" : отображает тип связанного объекта, за которым следует полное имя связанного объекта Пример:

отображает крестную мать : СТЮАРТ, Мария (° 30 марта 1909 г. + 16 декабря 2008 г.) (I0298) format="$V" : отображает только номер объекта Пример :

отображает I0298, если мы используем тот же пример, что и выше. Пример:

отображает S134, идентификационный номер объекта SOURce, поддерживающего событие BIRTh format="text" : отображает текст "текст", если данные существуют, иначе ничего. Пример:

отображает (*), если INDI:NAME:SOUR существует, иначе ничего max="n" : ограничивает отображение до n% доступной ширины. Действительно для изображения или для текста. Пример:

Я хочу извлечь инициалы из строки, например:

Я могу получить приведенный выше результат, используя это,

Но теперь мои требования изменены, как если бы имя состояло только из 1 слова или более чем из 2, поэтому в следующих случаях, как я могу получить инициалы в соответствии с моими требованиями,

Как я могу получить инициалы выше из строки в JS?

Кроме того, теперь у меня есть только строка item.Name в качестве входных данных

28 ответов 28

Почему не любят регулярные выражения?

Обновлено для поддержки символов Unicode и использования функций ES6

"Почему не нравятся регулярные выражения?" Потому что регулярное выражение обычно менее читабельно и более склонно к ошибкам в крайних случаях. Просто посмотрите комментарии к этому ответу для доказательства.

Не работает в случаях, когда имя уже является инициалом. Например. "K Mehta" должно привести к "KM"

Вы можете использовать это сокращенное js

Чтобы получить только имя и фамилию, вы можете использовать эту сокращенную функцию

Это не совсем отвечает на первоначальный вопрос — если у вас есть отчество, возвращается «FML».

можно заменить .join(".") на .reduce((acc, cur) => acc+=cur + '.', '')`, таким образом у вас будет точка в конце

Проверьте функцию getInitials ниже:

Функции разбивают входную строку пробелами:

Затем получите имя и первую букву:

Если имеется более одного имени, берется первая буква фамилии (та, что в позицииnames.length - 1 ):

Самые короткие однострочники:

Получить первый и последний инициалы: John Doe Smith => JS

Получить все инициалы: "Джон Доу Смит" => "JDS"

Получить первое и последнее, за исключением получения первого 2, если есть только первое. (вопрос ОП)

Джон => JO и "Джон Доу Смит" => "JS"

Примечание. Если имя содержит или другие несловесные символы, вы можете использовать /w вместо /S или предварительно очистить его

Просто удивлен, что ни один из ответов не дал Array.reduce() полезного применения.

Запустите приведенный ниже фрагмент кода, чтобы проверить инициалы для различных вариантов использования.

Это для широко используемого случая отображения имен в аватарах, когда вы не хотите, чтобы инициалы имени повторялись дважды, и хотите ограничить инициалы максимум двумя буквами

Это победитель для меня. Мне не нужно устанавливать какие-либо элементы Unicode REGEX, чтобы он работал в браузерах ES5!

Вы можете использовать логику ниже одной строки:

Есть и другие ответы, которые решают ваш вопрос, но они немного сложны. Вот более читаемое решение, которое охватывает большинство крайних случаев.

Поскольку ваше полное имя может содержать любое количество слов (отчеств), лучше всего представить его в виде массива и получить начальные символы из первого и последнего слов в этом массиве и вернуть буквы вместе.

Для удобства работы с текстом в Excel предусмотрены текстовые функции. Они позволяют легко обрабатывать сотни строк одновременно. Рассмотрим некоторые из них на примерах.

Примеры с функцией ТЕКСТ в Excel

Эта функция преобразует числа в строки в Excel. Синтаксис: значение (числовое или ссылка на ячейку с формулой, дающей в результате число); Формат (для отображения числа в виде текста).

Наиболее полезной функцией функции ТЕКСТ является форматирование числовых данных для объединения с текстовыми данными. Excel «не понимает», как отображать числа без использования функции. Программа просто конвертирует их в базовый формат.

Давайте рассмотрим пример. Допустим, вам нужно объединить текст в строку с числовыми значениями:

Использование амперсанда без функции ТЕКСТ дает неверный результат:

Excel вернул порядковый номер даты и общий формат вместо денежного. Чтобы избежать этого, используется функция ТЕКСТ. Он форматирует значения в соответствии с запросом пользователя.

Формула "на свидание" теперь выглядит так:

Вторым аргументом функции является формат. Где взять строку формата? Щелкните правой кнопкой мыши ячейку со значением. Нажмите «Форматировать ячейки». В открывшемся окне выберите «Пользовательский». Скопируйте нужный «Тип:» в строку. Вставляем скопированное значение в формулу.

Давайте рассмотрим еще один пример, где эта функция может быть полезна. Добавьте нули в начале числа. Excel удалит их, если вы введете их вручную. Поэтому введем формулу:

Если вы хотите вернуть старые числовые значения (без нулей), используйте оператор "--":

Обратите внимание, что значения теперь отображаются в числовом формате.

Функция разделения текста в Excel

Отдельные функции и их комбинации позволяют распределять слова из одной ячейки в отдельные ячейки:

  • СЛЕВА (текст, количество символов) отображает указанное количество символов от начала ячейки;
  • ВПРАВО (текст, количество символов) возвращает указанное количество символов от конца ячейки;
  • ПОИСК (текст для поиска, диапазон для поиска, начальная позиция) показывает положение первого вхождения искомого символа или строки при просмотре слева направо.

Линия учитывает положение каждого символа при разделении текста. Пробелы показывают начало или конец искомого имени.

С помощью функций разобьем имя, фамилию и отчество по разным столбцам.

Первая строка содержит только имя и фамилию, разделенные пробелом. Формула для получения имени:

Функция ПОИСК используется для определения второго аргумента функции ЛЕВЫЙ (количество символов). Он находит пробел в ячейке A2, начиная слева.

Для имени мы используем ту же формулу:

Excel определяет количество символов для функции ПРАВИЛЬНО с помощью функции ПОИСК. Функция ДЛСТР "подсчитывает" общую длину текста. Затем вычитается количество символов до первого пробела (найденное ПОИСКОМ).

Формула извлечения фамилии:

Следующая формула для извлечения фамилии немного отличается:

Это пять знаков справа. Встроенные функции SEARCH выполняют поиск второго и третьего пробелов в строке. ПОИСК ("";A7;1) находит первый пробел слева (перед отчеством). Добавьте один (+1) к результату. Получаем позицию, с которой будем искать второй пробел.

Часть формулы ПОИСК(" ";A7;ПОИСК(" ";A7;1)+1) находит второй пробел. Это будет конечная позиция отчества.

Затем из общей длины строки вычитается количество символов от начала строки до второго пробела. Результатом является количество символов справа, которое вам нужно вернуть.

Функция объединения текста в Excel

Используйте оператор амперсанда (&) или функцию СЦЕПИТЬ, чтобы объединить значения из нескольких ячеек в одну строку.

Например, значения расположены в разных столбцах (ячейках):

Поместите курсор в ячейку, где будут объединены три значения. Введите "=". Выберите первую ячейку и нажмите на клавиатуре знак «&». Затем введите пробел, заключенный в кавычки (" "). Введите снова «&». Поэтому последовательно соединяйте ячейки символами и пробелами.

Мы получаем объединенные значения в одной ячейке:

Использование функции СЦЕПИТЬ:

Вы можете добавить любой знак или строку к конечному выражению, используя кавычки в формуле.

Функция ПОИСК текста в Excel

Функция ПОИСК возвращает начальную позицию искомого текста (без учета регистра). Например:

ПОИСК вернулся на позицию 8, поскольку слово "Дрю" начинается с десятого символа в строке. Где это может быть полезно?

Функция ПОИСК определяет положение символа в строке строки. А функция MID возвращает значения символов (см. пример выше). Кроме того, вы можете заменить найденный текст на REPLACE.

Синтаксис функции ПОИСК:

  • «Найти_текст» — это то, что вам нужно найти;
  • Где искать "Withing_text";
  • "Start_num" – это позиция, с которой следует начинать поиск (по умолчанию – 1).

Используйте НАЙТИ, если вам нужно учитывать регистр (нижний и верхний).

Читайте также: