2016-07-13 4 views
0

Ich habe noch nie wirklich Javascript zuvor getan. Ich versuche zu Formatnamen (zum Beispiel John Doe als J. Doe erscheinen soll). Ich habe den Code geschrieben, um den vollen Namen von einem Cookie zu bekommen, aber ich weiß nicht, wie man es so formatiert.Erhalten Sie den ersten Buchstaben eines Wortes in Zeichenfolge und halten Sie andere gleich

Dies ist mein Code jetzt; Es zeigt nur den vollständigen Namen:

var cookieParts = document.cookie.split(";"); 
var userName = ""; 
for (var i = 0; i < cookieParts.length; i++) { 
    var name_value = cookieParts[i], 
    equals_pos = name_value.indexOf("="), 
    name  = unescape(name_value.slice(0, equals_pos)).trim(), 
    value  = unescape(name_value.slice(equals_pos + 1)); 
    if(name == "fullName"){ 
     userName = value.substring(0,1); 
    } 
} 

Kann mir bitte jemand helfen? Vielen Dank.

Antwort

0
function formatName(fullName){ 

    var names = fullName.split(' '); 
    for(var i = 0, n = names.length-1; i < n; i++) 
    names[i] = names[i][0]; 
    return names.join('. ') ; 

} 

console.log(formatName("Oscar Fingal O'Flahertie Wills Wilde")); // "O. F. O. W. Wilde" 
+0

Bitte bearbeiten Sie mit weiteren Informationen. Code-only und "try this" Antworten werden abgeraten, da sie keine durchsuchbaren Inhalte enthalten und nicht erklären, warum jemand "das versuchen sollte". Wir bemühen uns, eine Ressource für Wissen zu sein. –

1

Sie könnten eine Regex verwenden und durch den gewünschten Stil ersetzen.

console.log('Doe'.replace(/([A-Z])\w*(?=\s)/g, '$1.')); 
 
console.log('John Doe'.replace(/([A-Z])\w*(?=\s)/g, '$1.')); 
 
console.log('John John Doe'.replace(/([A-Z])\w*(?=\s)/g, '$1.'));

Wenn Sie nur das erste Vorkommen ersetzt werden soll, dann g -Flag (global) auslassen.

console.log('Doe'.replace(/([A-Z])\w*(?=\s)/, '$1.')); 
 
console.log('John Doe'.replace(/([A-Z])\w*(?=\s)/, '$1.')); 
 
console.log('John John Doe'.replace(/([A-Z])\w*(?=\s)/, '$1.'));

0

Basierend auf dem Code versehen Sie

var cookieParts = document.cookie.split(";"); 
var userName = ""; 
for (var i = 0; i < cookieParts.length; i++) { 
    var name_value = cookieParts[i], 
    equals_pos = name_value.indexOf("="), 
    name  = unescape(name_value.slice(0, equals_pos)).trim(), 
    value  = unescape(name_value.slice(equals_pos + 1)); 
    if(name == "fullName"){ 
     userName = value.split(" "); 
     userName[0]=userName[0].substring(0,1)+'.'; 
     userName = userName.join(" "); 
     alert(userName); 
    } 
} 
1

ich das NAME_VALUE bin Folgern sieht etwas wie: "name = John Doe". Wenn das der Fall ist, könnten Sie Folgendes tun:

name_parts = name_value.split("="); 
first_last = name_parts[1].split(" "); // assumes no spaces other than 1 between first and last name. 

first_initial_last = first_last[0].substring(0, 1) + '. ' + first_last[1];