Split First name and Last name using javascript

后端 未结 20 3149
悲&欢浪女
悲&欢浪女 2020-12-08 06:39

I have a user with a name Paul Steve Panakkal. It\'s a long name it won\'t fit to the div container. So is there anyway to split first name and lastname fro

20条回答
  •  时光取名叫无心
    2020-12-08 07:03

    In Spanish it can be tricky because you may have a second optional name and even complex surnames like "del Bosque" or "de la Hoya", vowels with accent marks and the ñ. The following javascript is capabable of parsing a full spanish name, having in count you are writting it respecting the upper and lower cases. It will return a json giving you

    1. name: 1 or 2 main names
    2. lastName: the main lastname
    3. secondLastName: The second lastname

    The code is:

    function parseName(input) {
            var fullName = input || "";
            var result = {};
    
            if (fullName.length > 0) {
                var nameTokens = fullName.match(/[A-ZÁ-ÚÑÜ][a-zá-úñü]+|([aeodlsz]+\s+)+[A-ZÁ-ÚÑÜ][a-zá-úñü]+/g) || [];
    
                if (nameTokens.length > 3) {
                    result.name = nameTokens.slice(0, 2).join(' ');
                } else {
                    result.name = nameTokens.slice(0, 1).join(' ');
                }
    
                if (nameTokens.length > 2) {
                    result.lastName = nameTokens.slice(-2, -1).join(' ');
                    result.secondLastName = nameTokens.slice(-1).join(' ');
                } else {
                    result.lastName = nameTokens.slice(-1).join(' ');
                    result.secondLastName = "";
                }
            }
    
            return result;
    }
    

    The surnames are required if you are going to specify a second name. Try it out with:

    • Eliecer Hernández Garbey
    • Oscar de la Hoya
    • José Julian Martí Pérez
    • Manuel de Céspedes del Castillo
    • Calixto García Íñiguez

    Even try out a complex one like

    • María de la Caridad del Bosque y Loynáz

    Comment your experiences with it.

提交回复
热议问题