2016-07-13 12 views
0

これまでにJavaScriptを実際にやったことはありません。名前の書式を設定しようとしています(例:)。Doeは、Je Doeと表示されます。クッキーからフルネームを取得するコードを書いていますが、そのようにフォーマットする方法はわかりません。文字列内の単語の最初の文字を取得し、他の人と同じにする

これは現在のコードです。

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); 
    } 
} 

お手伝いできますか?ありがとう。

答えて

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

詳細を編集してください。コード専用と「試してください」の回答は、検索可能なコンテンツが含まれていないため、推奨されません。なぜ誰かが「これを試してみる」べき理由を説明しません。私たちはここで知識のためのリソースとなるよう努力しています。 –

1

正規表現を使用して、必要なスタイルに置き換えることができます。あなただけの最初の発生を置き換えたい場合は

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.'));

、その後、g(グローバル)フラグを省略。

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

あなたは

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

を提供されたコードに基づいて、私はそのNAME_VALUEを推測しています何かのように、 "名前=ジョン・ドウ" を探します。その場合は、次のようにしてください:

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]; 
関連する問題