Hướng dẫn how to get first letter of full name in javascript - cách lấy chữ cái đầu tiên của tên đầy đủ trong javascript

Tại sao không có tình yêu dành cho Regex?

Được cập nhật để hỗ trợ các ký tự Unicode và sử dụng các tính năng ES6

let name = 'ÇFoo Bar 1Name too ÉLong';
let rgx = new RegExp[/[\p{L}{1}]\p{L}+/, 'gu'];

let initials = [...name.matchAll[rgx]] || [];

initials = [
  [initials.shift[]?.[1] || ''] + [initials.pop[]?.[1] || '']
].toUpperCase[];

console.log[initials];

Đã trả lời ngày 12 tháng 10 năm 2015 lúc 8:27Oct 12, 2015 at 8:27

7

Bạn có thể sử dụng tốc ký này JS

"FirstName LastName".split[" "].map[[n]=>n[0]].join["."];

Để chỉ nhận được họ và họ, bạn có thể sử dụng chức năng tốc ký này

[fullname=>fullname.map[[n, i]=>[i==0||i==fullname.length-1]&&n[0]].filter[n=>n].join[""]]
["FirstName MiddleName OtherName LastName".split[" "]];

Đã trả lời ngày 24 tháng 8 năm 2017 lúc 17:45Aug 24, 2017 at 17:45

njmwasnjmwasnjmwas

1.02114 Huy hiệu bạc14 Huy hiệu đồng14 silver badges14 bronze badges

2

Kiểm tra chức năng

names = string.split[' '],
3 bên dưới:

var getInitials = function [string] {
    var names = string.split[' '],
        initials = names[0].substring[0, 1].toUpperCase[];
    
    if [names.length > 1] {
        initials += names[names.length - 1].substring[0, 1].toUpperCase[];
    }
    return initials;
};

console.log[getInitials['FirstName LastName']];
console.log[getInitials['FirstName MiddleName LastName']];
console.log[getInitials['1stName 2ndName 3rdName 4thName 5thName']];

Các chức năng chia chuỗi đầu vào theo khoảng trắng:

names = string.split[' '],

Sau đó lấy tên đầu tiên và lấy chữ cái đầu tiên:

initials = names[0].substring[0, 1].toUpperCase[];

Nếu có nhiều hơn một tên, nó lấy chữ cái đầu tiên của họ [tên ở vị trí

names = string.split[' '],
4]:

if [names.length > 1] {
    initials += names[names.length - 1].substring[0, 1].toUpperCase[];
}

Herohtar

5.0984 Huy hiệu vàng34 Huy hiệu bạc40 Huy hiệu đồng4 gold badges34 silver badges40 bronze badges

Đã trả lời ngày 12 tháng 10 năm 2015 lúc 8:18Oct 12, 2015 at 8:18

AndreaandreaAndrea

3.2401 Huy hiệu vàng16 Huy hiệu bạc25 Huy hiệu đồng1 gold badge16 silver badges25 bronze badges

Nhận đầu tiên và cuối cùng:

names = string.split[' '],
5
names = string.split[' '],
5

name.match[/[\b\S]?/g].join[""].match[/[^\S|\S$]?/g].join[""].toUpperCase[]

Nhận tất cả tên viết tắt:

names = string.split[' '],
6
names = string.split[' '],
6

name.match[/[\b\S]?/g].join[""].toUpperCase[]

Nhận đầu tiên và cuối cùng ngoại trừ nhận 2 đầu tiên trong trường hợp chỉ có đầu tiên. [Câu hỏi của OP]

names = string.split[' '],
7 và
names = string.split[' '],
8

name.match[/[^\S\S?|\b\S]?/g].join[""].match[/[^\S|\S$]?/g].join[""].toUpperCase[]

Phiên bản quốc tế:

names = string.split[' '],
9
names = string.split[' '],
9

"FirstName LastName".split[" "].map[[n]=>n[0]].join["."];
0

Lưu ý: Nếu tên chứa

initials = names[0].substring[0, 1].toUpperCase[];
0 hoặc các ký tự không từ khác, bạn có thể sử dụng
initials = names[0].substring[0, 1].toUpperCase[];
1 thay vì
initials = names[0].substring[0, 1].toUpperCase[];
2 hoặc vệ sinh trước đó
If the name contains
initials = names[0].substring[0, 1].toUpperCase[];
0 or other non word characters, you might use
initials = names[0].substring[0, 1].toUpperCase[];
1 instead of
initials = names[0].substring[0, 1].toUpperCase[];
2 or sanitize it beforehand

Đã trả lời ngày 6 tháng 9 năm 2020 lúc 11:13Sep 6, 2020 at 11:13

Chickenschickenschickens

17.2K4 Huy hiệu vàng55 Huy hiệu bạc51 Huy hiệu Đồng4 gold badges55 silver badges51 bronze badges

4

Trường hợp sử dụng avatar phổ biến

Chỉ ngạc nhiên khi không có câu trả lời nào đưa

initials = names[0].substring[0, 1].toUpperCase[];
3 sử dụng tốt.

"FirstName LastName".split[" "].map[[n]=>n[0]].join["."];
1

Chạy đoạn trích bên dưới để kiểm tra tên viết tắt cho các trường hợp sử dụng khác nhau -

"FirstName LastName".split[" "].map[[n]=>n[0]].join["."];
2

Ghi chú

Đây là trường hợp được sử dụng rộng rãi để hiển thị tên trong Avatars, nơi bạn sẽ không muốn tên đầu tiên được lặp lại hai lần và muốn giới hạn tên viết tắt ở mức tối đa 2 chữ cái

Đã trả lời ngày 17 tháng 2 năm 2021 lúc 9:32Feb 17, 2021 at 9:32

VandeshvandeshVandesh

5.7741 Huy hiệu vàng24 Huy hiệu bạc34 Huy hiệu đồng1 gold badge24 silver badges34 bronze badges

1

Bạn có thể sử dụng bên dưới một logic dòng:

"FirstName LastName".split[" "].map[[n]=>n[0]].join["."];
3

Đã trả lời ngày 24 tháng 7 năm 2018 lúc 7:57Jul 24, 2018 at 7:57

Có một số câu trả lời khác giải quyết truy vấn của bạn nhưng hơi phức tạp. Đây là một giải pháp dễ đọc hơn bao gồm hầu hết các trường hợp cạnh.

Vì tên đầy đủ của bạn có thể có bất kỳ số lượng từ [tên đệm] nào trong đó, đặt cược tốt nhất của chúng tôi là nhổ nó vào một mảng và lấy các ký tự ban đầu từ các từ đầu tiên và cuối cùng trong mảng đó và trả lại các chữ cái với nhau.

Ngoài ra, nếu 'fullName' của bạn chỉ chứa một từ, từ tại

initials = names[0].substring[0, 1].toUpperCase[];
4 và
initials = names[0].substring[0, 1].toUpperCase[];
5 sẽ là cùng một từ, vì vậy chúng tôi sẽ xử lý rằng nếu
initials = names[0].substring[0, 1].toUpperCase[];
6 đầu tiên.

"FirstName LastName".split[" "].map[[n]=>n[0]].join["."];
4

Đầu ra mẫu:

initials = names[0].substring[0, 1].toUpperCase[];
7 // "P"

initials = names[0].substring[0, 1].toUpperCase[];
8 // "FL"

initials = names[0].substring[0, 1].toUpperCase[];
9 // "15"

Đã trả lời ngày 5 tháng 8 năm 2019 lúc 21:25Aug 5, 2019 at 21:25

Siwalikmsiwalikmsiwalikm

1.7231 Huy hiệu vàng16 Huy hiệu bạc20 Huy hiệu Đồng1 gold badge16 silver badges20 bronze badges

0

"FirstName LastName".split[" "].map[[n]=>n[0]].join["."];
5

Đã trả lời ngày 13 tháng 5 năm 2019 lúc 10:30May 13, 2019 at 10:30

AniketaniketAniket

5424 Huy hiệu bạc13 Huy hiệu Đồng4 silver badges13 bronze badges

1

"FirstName LastName".split[" "].map[[n]=>n[0]].join["."];
6

Đã trả lời ngày 2 tháng 3 năm 2020 lúc 10:00Mar 2, 2020 at 10:00

NminmiNMI

4895 Huy hiệu bạc8 Huy hiệu Đồng5 silver badges8 bronze badges

3

Bạn có thể thực hiện một chức năng cho điều đó:

"FirstName LastName".split[" "].map[[n]=>n[0]].join["."];
7

Fiddle: //jsfiddle.net/5v3n2f95/1/

Đã trả lời ngày 12 tháng 10 năm 2015 lúc 8:16Oct 12, 2015 at 8:16

Guramidevguramidevguramidev

2.1881 Huy hiệu vàng15 Huy hiệu bạc19 Huy hiệu đồng1 gold badge15 silver badges19 bronze badges

Dễ dàng hơn với chức năng bản đồ:

"FirstName LastName".split[" "].map[[n]=>n[0]].join["."];
8

Đã trả lời ngày 7 tháng 2 năm 2017 lúc 16:56Feb 7, 2017 at 16:56

Eric Geric gEric G

93512 Huy hiệu bạc21 Huy hiệu đồng12 silver badges21 bronze badges

1

"FirstName LastName".split[" "].map[[n]=>n[0]].join["."];
9

Đã trả lời ngày 8 tháng 6 năm 2019 lúc 11:29Jun 8, 2019 at 11:29

Deejayydeejayydeejayy

7403 Huy hiệu bạc9 Huy hiệu Đồng3 silver badges9 bronze badges

0

Phiên bản tương tự nhưng hơi gọn gàng hơn của @NJMWAS Trả lời:

[fullname=>fullname.map[[n, i]=>[i==0||i==fullname.length-1]&&n[0]].filter[n=>n].join[""]]
["FirstName MiddleName OtherName LastName".split[" "]];
0

Hoặc, bao gồm các dấu chấm từ viết tắt:

[fullname=>fullname.map[[n, i]=>[i==0||i==fullname.length-1]&&n[0]].filter[n=>n].join[""]]
["FirstName MiddleName OtherName LastName".split[" "]];
1

Toni

1.4954 Huy hiệu vàng14 Huy hiệu bạc22 Huy hiệu đồng4 gold badges14 silver badges22 bronze badges

Đã trả lời ngày 26 tháng 9 năm 2021 lúc 10:07Sep 26, 2021 at 10:07

2

+ Hiệu quả + Không có vòng lặp + Phân nhánh đơn giản hóa [Chỉ người vận hành ternary] + Xử lý các trường hợp không gian không gian [in 2 ký tự
+ no loops
+ simplified branching [ternary operator only]
+ handles no-space cases [prints 2 chars]
+ no array memory allocation [actually no array processing] - requires trimmed string input

[fullname=>fullname.map[[n, i]=>[i==0||i==fullname.length-1]&&n[0]].filter[n=>n].join[""]]
["FirstName MiddleName OtherName LastName".split[" "]];
2

Đã trả lời ngày 14 tháng 1 lúc 12:05Jan 14 at 12:05

test30test30test30

3.27832 huy hiệu bạc26 Huy hiệu đồng32 silver badges26 bronze badges

Giải pháp này sử dụng các khả năng mảng, chức năng mũi tên và toán tử ternary để đạt được mục tiêu trong một dòng. Nếu tên là một từ, chỉ cần lấy hai ký tự đầu tiên, nhưng nếu nhiều hơn, thì hãy lấy ký tự đầu tiên của tên đầu tiên và tên cuối cùng. [Cảm ơn OMN vì đã nhắc nhở trường hợp sử dụng tên từ đơn]

[fullname=>fullname.map[[n, i]=>[i==0||i==fullname.length-1]&&n[0]].filter[n=>n].join[""]]
["FirstName MiddleName OtherName LastName".split[" "]];
3

Đã trả lời ngày 17 tháng 8 năm 2019 lúc 9:07Aug 17, 2019 at 9:07

MitchsprabsPrabs

192 Huy hiệu Đồng2 bronze badges

1

Tôi cần điều này ngày hôm nay để hoạt động như một phương pháp trong mã React của tôi. Tôi đã lấy tên người dùng từ trạng thái làm đạo cụ. Sau đó, tôi vừa chuyển phương pháp của mình trong đạo cụ của thành phần.

[fullname=>fullname.map[[n, i]=>[i==0||i==fullname.length-1]&&n[0]].filter[n=>n].join[""]]
["FirstName MiddleName OtherName LastName".split[" "]];
4

Đã trả lời ngày 22 tháng 6 năm 2021 lúc 10:02Jun 22, 2021 at 10:02

[fullname=>fullname.map[[n, i]=>[i==0||i==fullname.length-1]&&n[0]].filter[n=>n].join[""]]
["FirstName MiddleName OtherName LastName".split[" "]];
5

Safari chưa hỗ trợ Lookbehinds trong Regexes [xem Caniuse], vì vậy nếu cần hỗ trợ Safari, nó có thể được viết lại theo cách này:

[fullname=>fullname.map[[n, i]=>[i==0||i==fullname.length-1]&&n[0]].filter[n=>n].join[""]]
["FirstName MiddleName OtherName LastName".split[" "]];
6

Đã trả lời ngày 30 tháng 11 năm 2021 lúc 14:30Nov 30, 2021 at 14:30

thorn0thorn0thorn0

8.6133 Huy hiệu vàng63 Huy hiệu bạc94 Huy hiệu Đồng3 gold badges63 silver badges94 bronze badges

[fullname=>fullname.map[[n, i]=>[i==0||i==fullname.length-1]&&n[0]].filter[n=>n].join[""]]
["FirstName MiddleName OtherName LastName".split[" "]];
7

Đã trả lời ngày 12 tháng 3 năm 2019 lúc 18:01Mar 12, 2019 at 18:01

Bạn có thể làm một cái gì đó như thế này;

[fullname=>fullname.map[[n, i]=>[i==0||i==fullname.length-1]&&n[0]].filter[n=>n].join[""]]
["FirstName MiddleName OtherName LastName".split[" "]];
8

Sau đó, bạn có thể sử dụng chức năng như vậy;

[fullname=>fullname.map[[n, i]=>[i==0||i==fullname.length-1]&&n[0]].filter[n=>n].join[""]]
["FirstName MiddleName OtherName LastName".split[" "]];
9

Tôi hi vọng cái này giúp được.

Đã trả lời ngày 24 tháng 5 năm 2019 lúc 9:01May 24, 2019 at 9:01

var getInitials = function [string] {
    var names = string.split[' '],
        initials = names[0].substring[0, 1].toUpperCase[];
    
    if [names.length > 1] {
        initials += names[names.length - 1].substring[0, 1].toUpperCase[];
    }
    return initials;
};

console.log[getInitials['FirstName LastName']];
console.log[getInitials['FirstName MiddleName LastName']];
console.log[getInitials['1stName 2ndName 3rdName 4thName 5thName']];
0

Đã trả lời ngày 8 tháng 8 năm 2019 lúc 10:48Aug 8, 2019 at 10:48

Điều này sẽ làm việc cho phần lớn các trường hợp bao gồm tên đệm và tên đầu tiên [mở rộng trên câu trả lời @njmwas].

var getInitials = function [string] {
    var names = string.split[' '],
        initials = names[0].substring[0, 1].toUpperCase[];
    
    if [names.length > 1] {
        initials += names[names.length - 1].substring[0, 1].toUpperCase[];
    }
    return initials;
};

console.log[getInitials['FirstName LastName']];
console.log[getInitials['FirstName MiddleName LastName']];
console.log[getInitials['1stName 2ndName 3rdName 4thName 5thName']];
1

Đã trả lời ngày 16 tháng 8 năm 2019 lúc 19:07Aug 16, 2019 at 19:07

AnbiswanbiswAnBisw

7.6165 Huy hiệu vàng46 Huy hiệu bạc74 Huy hiệu đồng5 gold badges46 silver badges74 bronze badges

Để có được tên đầu tiên và tên riêng, hãy thử sử dụng chức năng bên dưới.

var getInitials = function [string] {
    var names = string.split[' '],
        initials = names[0].substring[0, 1].toUpperCase[];
    
    if [names.length > 1] {
        initials += names[names.length - 1].substring[0, 1].toUpperCase[];
    }
    return initials;
};

console.log[getInitials['FirstName LastName']];
console.log[getInitials['FirstName MiddleName LastName']];
console.log[getInitials['1stName 2ndName 3rdName 4thName 5thName']];
2

Điều gì đã xảy ra: Hàm chia chuỗi đến, bỏ qua bất kỳ tên nào giữa tên đầu tiên & cuối cùng và trả về tên viết tắt của chúng. Trong trường hợp, một tên duy nhất được nhập, một lần ban đầu được trả về. Tôi hy vọng điều này sẽ giúp, cổ vũ.

Đã trả lời ngày 16 tháng 12 năm 2019 lúc 13:04Dec 16, 2019 at 13:04

Cách dễ dàng sử dụng Es6 Destructering:ES6 Destructering:

var getInitials = function [string] {
    var names = string.split[' '],
        initials = names[0].substring[0, 1].toUpperCase[];
    
    if [names.length > 1] {
        initials += names[names.length - 1].substring[0, 1].toUpperCase[];
    }
    return initials;
};

console.log[getInitials['FirstName LastName']];
console.log[getInitials['FirstName MiddleName LastName']];
console.log[getInitials['1stName 2ndName 3rdName 4thName 5thName']];
3

Đã trả lời ngày 12 tháng 6 năm 2020 lúc 20:21Jun 12, 2020 at 20:21

Knoefelknoefelknoefel

4.9213 Huy hiệu vàng20 Huy hiệu bạc39 Huy hiệu Đồng3 gold badges20 silver badges39 bronze badges

Đây là phương pháp tiện ích đơn giản giúp lấy tên viết tắt của tên bằng cách chuyển tên cho hàm getinitials // ví dụ: getinitials ["Harry Potter"] ==> "HP"

var getInitials = function [string] {
    var names = string.split[' '],
        initials = names[0].substring[0, 1].toUpperCase[];
    
    if [names.length > 1] {
        initials += names[names.length - 1].substring[0, 1].toUpperCase[];
    }
    return initials;
};

console.log[getInitials['FirstName LastName']];
console.log[getInitials['FirstName MiddleName LastName']];
console.log[getInitials['1stName 2ndName 3rdName 4thName 5thName']];
4

Đã trả lời ngày 31 tháng 8 năm 2021 lúc 4:59Aug 31, 2021 at 4:59

Một cái gì đó hoạt động hơn: D

var getInitials = function [string] {
    var names = string.split[' '],
        initials = names[0].substring[0, 1].toUpperCase[];
    
    if [names.length > 1] {
        initials += names[names.length - 1].substring[0, 1].toUpperCase[];
    }
    return initials;
};

console.log[getInitials['FirstName LastName']];
console.log[getInitials['FirstName MiddleName LastName']];
console.log[getInitials['1stName 2ndName 3rdName 4thName 5thName']];
5

Đã trả lời ngày 15 tháng 9 năm 2021 lúc 3:10Sep 15, 2021 at 3:10

Mehparramehparramehparra

4164 Huy hiệu bạc3 Huy hiệu đồng4 silver badges3 bronze badges

var getInitials = function [string] {
    var names = string.split[' '],
        initials = names[0].substring[0, 1].toUpperCase[];
    
    if [names.length > 1] {
        initials += names[names.length - 1].substring[0, 1].toUpperCase[];
    }
    return initials;
};

console.log[getInitials['FirstName LastName']];
console.log[getInitials['FirstName MiddleName LastName']];
console.log[getInitials['1stName 2ndName 3rdName 4thName 5thName']];
6

Console.log [getinitials ['Rama Krishna Narayan']];

var getInitials = function [string] {
    var names = string.split[' '],
        initials = names[0].substring[0, 1].toUpperCase[];
    
    if [names.length > 1] {
        initials += names[names.length - 1].substring[0, 1].toUpperCase[];
    }
    return initials;
};

console.log[getInitials['FirstName LastName']];
console.log[getInitials['FirstName MiddleName LastName']];
console.log[getInitials['1stName 2ndName 3rdName 4thName 5thName']];
7

Đã trả lời ngày 19 tháng 7 lúc 4:42Jul 19 at 4:42

1

Một cách tốt hơn.

var getInitials = function [string] {
    var names = string.split[' '],
        initials = names[0].substring[0, 1].toUpperCase[];
    
    if [names.length > 1] {
        initials += names[names.length - 1].substring[0, 1].toUpperCase[];
    }
    return initials;
};

console.log[getInitials['FirstName LastName']];
console.log[getInitials['FirstName MiddleName LastName']];
console.log[getInitials['1stName 2ndName 3rdName 4thName 5thName']];
8

Đã trả lời ngày 5 tháng 9 lúc 9:36Sep 5 at 9:36

vừa cập nhật phiên bản của Andrea:

var getInitials = function [string] {
    var names = string.split[' '],
        initials = names[0].substring[0, 1].toUpperCase[];
    
    if [names.length > 1] {
        initials += names[names.length - 1].substring[0, 1].toUpperCase[];
    }
    return initials;
};

console.log[getInitials['FirstName LastName']];
console.log[getInitials['FirstName MiddleName LastName']];
console.log[getInitials['1stName 2ndName 3rdName 4thName 5thName']];
9

Nếu chuỗi bao gồm tên lastName, chỉ cần thay đổi tên.string includes LastName, just change names.length to names.length-1 to ignore lastname

Đã trả lời ngày 15 tháng 11 năm 2018 lúc 21:15Nov 15, 2018 at 21:15

Sử dụng một số chức năng ES6:

names = string.split[' '],
0

Đã trả lời ngày 4 tháng 7 năm 2019 lúc 15:24Jul 4, 2019 at 15:24

GeorgewlgegorwlGeorgeWL

3492 Huy hiệu bạc18 Huy hiệu Đồng2 silver badges18 bronze badges

0

Tôi đã thấy một loạt các cách quá phức tạp để làm điều này. Tôi thực sự nhiều hơn để đơn giản hóa mọi thứ càng nhiều càng tốt, và tăng cường mọi thứ bằng cách sử dụng bố cục hoặc cà ri.

Đây là 2 xu của tôi:

names = string.split[' '],
1

Đối với trường hợp cụ thể của bạn, tôi sẽ đề xuất một cái gì đó như thế này:

names = string.split[' '],
2

Tôi hy vọng điều đó sẽ giúp = D

Đã trả lời ngày 23 tháng 10 năm 2019 lúc 2:35Oct 23, 2019 at 2:35

ThramthramThram

5144 Huy hiệu bạc9 Huy hiệu Đồng4 silver badges9 bronze badges

Làm thế nào để bạn có được chữ cái đầu tiên trong một chuỗi javascript?

Nhận chữ cái đầu tiên của chuỗi bạn nên sử dụng phương thức charat [], tại INDEX 0, để chọn ký tự đầu tiên của chuỗi. Lưu ý: Charat thích hợp hơn là sử dụng [] [ký hiệu khung] như str. charat [0] trả về một chuỗi trống [''] cho str = '' thay vì không xác định trong trường hợp '' [0].use the charAt[] method, at index 0, to select the first character of the string. NOTE: charAt is preferable than using [ ] [bracket notation] as str. charAt[0] returns an empty string [ '' ] for str = '' instead of undefined in case of ''[0] .

Làm cách nào để trả lại chữ cái đầu tiên của một chuỗi?

Ý tưởng là sử dụng phương thức Charat [] của lớp chuỗi để tìm ký tự đầu tiên và cuối cùng trong một chuỗi. Phương thức charat [] chấp nhận một tham số dưới dạng một chỉ mục của ký tự được trả về. Ký tự đầu tiên trong một chuỗi có mặt ở Index Zero và ký tự cuối cùng trong một chuỗi có mặt ở độ dài chỉ mục của chuỗi-1.use charAt[] method of String class to find the first and last character in a string. The charAt[] method accepts a parameter as an index of the character to be returned. The first character in a string is present at index zero and the last character in a string is present at index length of string-1 .

Làm thế nào để tôi có được ký tự ban đầu đầu tiên và cuối cùng từ một chuỗi tên?

Explanation:..
^ - Bắt đầu chuỗi ..
\ S* - phù hợp với [các] khoảng trắng tùy chọn.
.
.*\ s+ - ở đây.....
.
\ S+$ - phù hợp với phần còn lại của LastName và End of Input ..

Làm cách nào để in họ và họ trong JavaScript?

Để chia một tên đầy đủ thành họ và tên đầu tiên trong JavaScript:..
Gọi chuỗi.Chia [] phương thức trên chuỗi, chia tách trên không gian ..
Sợi dây.Split [] sẽ trả về một mảng chứa tên ..
Sử dụng phá hủy mảng để gán các giá trị của tên đầu tiên và tên cuối cùng cho các biến ..

Bài Viết Liên Quan

Chủ Đề