次のようなJS変数が与えられます:
var n = James Bond;
var n = James Earl Bond;
var n = James;
名と最後のイニシャルを返すにはどうすればよいですか?ミドルネームと彼らがファーストネームだけである可能性を無視することを説明しながら?誰かが前にこれをエレガントに解決しますか?
ありがとう
次のようなJS変数が与えられます:
var n = James Bond;
var n = James Earl Bond;
var n = James;
名と最後のイニシャルを返すにはどうすればよいですか?ミドルネームと彼らがファーストネームだけである可能性を無視することを説明しながら?誰かが前にこれをエレガントに解決しますか?
ありがとう
function formatName(name)
{
var newName;
name = name.split(' ');
newName = name.shift();
if ( name.length ) newName += ' ' + name.pop()[0] + '.';
return newName;
}
これがフィドルです:http://jsfiddle.net/68JVS/
次のような正規表現を使用できます。
var formattedName = name.replace(/([^ ]+).*([A-Z])[^ ]*$/,"$1 $2.");
ただし、個人的な経験では、名前/名前を文字列全体として扱う場合、特に世界中のユーザーのケースシナリオがある場合は、名前付けのルールがないため、多くの問題が発生します。
var name_comps = name.split(' ');
var first_name = name_comps[0];
var last_init = '';
if(name_comps.length >0){
var last_init = name_comps[name_comps.length -1].charAt(0);
}
var userName = first_name + (last_init ? ' ' + last_init : '');
var names=n.split(' ');
var newname=names[0];
if (names.length>1) {
names.reverse();
var newname+=' '+names[0].substr(0,1)+'.';
}
'James B.' という名前が 1 つしかない場合は、'James' を返します。姓なら。ミドル ネームは無視されますが、ラスト ネームが指定されていない場合は考慮されます。