Làm thế nào bạn sẽ đi xung quanh để thu thập chữ cái đầu tiên của mỗi từ trong một chuỗi, như để nhận được viết tắt?
Đầu vào: 'Aa Bb'.match(/\b\w/g).join('') 8 'Aa Bb'.match(/\b\w/g).join('') 8
Đầu ra: 'Aa Bb'.match(/\b\w/g).join('') 9 'Aa Bb'.match(/\b\w/g).join('') 9
Penny Liu
Huy hiệu vàng 13K571 Huy hiệu bạc86 Huy hiệu đồng5 gold badges71 silver badges86 bronze badges
Đã hỏi ngày 26 tháng 11 năm 2011 lúc 16:32Nov 26, 2011 at 16:32
Gerben Jacobsgerben JacobsGerben Jacobs
4.4353 Huy hiệu vàng31 Huy hiệu bạc54 Huy hiệu đồng3 gold badges31 silver badges54 bronze badges
Tôi nghĩ những gì bạn đang tìm kiếm là từ viết tắt của một chuỗi được cung cấp.
var str = "Java Script Object Notation"; var matches = str.match(/\b(\w)/g); // ['J','S','O','N'] var acronym = matches.join(''); // JSON console.log(acronym)
Lưu ý: Điều này sẽ thất bại đối với các từ Hyphenated/Apostrophe'd 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 0 sẽ là 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 1. Nếu đó không phải là những gì bạn muốn, việc chia tách trên không gian, hãy lấy cách tiếp cận chữ cái đầu tiên có thể là những gì bạn muốn. this will fail for hyphenated/apostrophe'd words 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 0 will be 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 1. If that's not what you want, the split on space, grab first letter approach might be what you want.
Đây là một ví dụ nhanh về điều đó:
let str = "Java Script Object Notation"; let acronym = str.split(/\s/).reduce((response,word)=> response+=word.slice(0,1),'') console.log(acronym);
Đã trả lời ngày 26 tháng 11 năm 2011 lúc 16:35Nov 26, 2011 at 16:35
4
Tôi nghĩ bạn có thể làm điều này với
'Aa Bb'.match(/\b\w/g).join('')Giải thích: Lấy tất cả 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 2 Các ký tự chữ và số 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 3 xảy ra sau một ký tự không phải là số đồnguman (tức là: sau một ranh giới từ 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 4), hãy đặt chúng vào một mảng với 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 5 và tham gia mọi thứ trong một chuỗi 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 6 Obtain all 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 2 the alphanumeric characters 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 3 that occur after a non-alphanumeric character (i.e: after a word boundary 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 4), put them on an array with 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 5 and join everything in a single string 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 6
Tùy thuộc vào những gì bạn muốn làm, bạn cũng có thể xem xét chỉ cần chọn tất cả các ký tự chữ hoa:
'JavaScript Object Notation'.match(/[A-Z]/g).join('')Đã trả lời ngày 26 tháng 11 năm 2011 lúc 16:36Nov 26, 2011 at 16:36
Hugomghugomghugomg
66.9K23 Huy hiệu vàng155 Huy hiệu bạc241 Huy hiệu Đồng23 gold badges155 silver badges241 bronze badges
4
Cách dễ nhất mà không có regex
var abbr = "Java Script Object Notation".split(' ').map(function(item){return item[0]}).join('');Đã trả lời ngày 3 tháng 4 năm 2015 lúc 6:23Apr 3, 2015 at 6:23
AlmisalmisAlmis
3.3872 Huy hiệu vàng26 Huy hiệu bạc54 Huy hiệu Đồng2 gold badges26 silver badges54 bronze badges
Điều này được thực hiện rất đơn giản với ES6ES6
string.split(' ').map(i => i.charAt(0)) //Inherit case of each letter string.split(' ').map(i => i.charAt(0)).toUpperCase() //Uppercase each letter string.split(' ').map(i => i.charAt(0)).toLowerCase() //lowercase each letterĐiều này chỉ hoạt động với không gian hoặc bất cứ thứ gì được xác định trong phương thức 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 7
IE, 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 8 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 9, v.v.
string.split(' ') .map(i => i.charAt(0)) .toString() .toUpperCase().split(',')
Maxshuty
8.20510 Huy hiệu vàng57 Huy hiệu bạc71 Huy hiệu Đồng10 gold badges57 silver badges71 bronze badges
Đã trả lời ngày 1 tháng 10 năm 2018 lúc 15:42Oct 1, 2018 at 15:42
2
Để thêm vào các ví dụ tuyệt vời, bạn có thể làm điều đó như thế này trong ES6
const x = "Java Script Object Notation".split(' ').map(x => x[0]).join(''); console.log(x); // JSONVà điều này cũng hoạt động nhưng vui lòng bỏ qua nó, tôi đã đi một chút ở đây :-)
const [j,s,o,n] = "Java Script Object Notation".split(' ').map(x => x[0]); console.log(`${j}${s}${o}${n}`);Đã trả lời ngày 16 tháng 5 năm 2017 lúc 21:51May 16, 2017 at 21:51
Darryl Hebbesdarryl HebbesDarryl Hebbes
Huy hiệu vàng 90811 gold badge8 silver badges15 bronze badges
@BotNet Flaw: Tôi nghĩ rằng tôi đã giải quyết nó sau 3 ngày hướng dẫn biểu cảm thông thường:
==> Tôi là một con vật
(Được sử dụng để bắt m của tôi) vì ranh giới từ, nó dường như có tác dụng với tôi theo cách đó.
/(\s|^)([a-z])/giĐã trả lời ngày 15 tháng 4 năm 2017 lúc 13:51Apr 15, 2017 at 13:51
0
Thử -
let str = "Java Script Object Notation"; let acronym = str.split(/\s/).reduce((response,word)=> response+=word.slice(0,1),'') console.log(acronym);0Demo - //jsfiddle.net/r2maq/
Đã trả lời ngày 26 tháng 11 năm 2011 lúc 16:37Nov 26, 2011 at 16:37
ipr101ipr101ipr101
23.9K7 Huy hiệu vàng57 Huy hiệu bạc61 Huy hiệu Đồng7 gold badges57 silver badges61 bronze badges
Sử dụng var abbr = "Java Script Object Notation".split(' ').map(function(item){return item[0]}).join(''); 0 (từ lập trình chức năng)
let str = "Java Script Object Notation"; let acronym = str.split(/\s/).reduce((response,word)=> response+=word.slice(0,1),'') console.log(acronym);1Đã trả lời ngày 8 tháng 12 năm 2015 lúc 11:26Dec 8, 2015 at 11:26
Thay thế 1:
Bạn cũng có thể sử dụng Regex này để trả lại một mảng của chữ cái đầu tiên của mỗi từ
let str = "Java Script Object Notation"; let acronym = str.split(/\s/).reduce((response,word)=> response+=word.slice(0,1),'') console.log(acronym);2var abbr = "Java Script Object Notation".split(' ').map(function(item){return item[0]}).join(''); 1 được gọi là var abbr = "Java Script Object Notation".split(' ').map(function(item){return item[0]}).join(''); 2 để đảm bảo phần tử trong mẫu tìm kiếm của chúng tôi được đi trước var abbr = "Java Script Object Notation".split(' ').map(function(item){return item[0]}).join(''); 3.
Vì vậy, đối với trường hợp của bạn:
let str = "Java Script Object Notation"; let acronym = str.split(/\s/).reduce((response,word)=> response+=word.slice(0,1),'') console.log(acronym);3(Nhân tiện, cũng có var abbr = "Java Script Object Notation".split(' ').map(function(item){return item[0]}).join(''); 4, var abbr = "Java Script Object Notation".split(' ').map(function(item){return item[0]}).join(''); 5, var abbr = "Java Script Object Notation".split(' ').map(function(item){return item[0]}).join(''); 6, nếu bạn muốn tìm hiểu thêm)
Thay thế 2:
Kết hợp tất cả các từ và sử dụng phương thức var abbr = "Java Script Object Notation".split(' ').map(function(item){return item[0]}).join(''); 7 để thay thế chúng bằng chữ cái đầu tiên của mỗi từ và bỏ qua không gian (phương thức sẽ không biến đổi chuỗi gốc của bạn)
let str = "Java Script Object Notation"; let acronym = str.split(/\s/).reduce((response,word)=> response+=word.slice(0,1),'') console.log(acronym);4Đã trả lời ngày 21 tháng 7 năm 2018 lúc 14:42Jul 21, 2018 at 14:42
Fatma Nabillafatma NabillaFatma Nabilla
1.2211 Huy hiệu vàng9 Huy hiệu bạc 6 Huy hiệu Đồng1 gold badge9 silver badges6 bronze badges
Điều quan trọng là phải cắt từ trước khi chia nó, nếu không, chúng tôi sẽ mất một số chữ cái.
let str = "Java Script Object Notation"; let acronym = str.split(/\s/).reduce((response,word)=> response+=word.slice(0,1),'') console.log(acronym);5$ var abbr = "Java Script Object Notation".split(' ').map(function(item){return item[0]}).join(''); 8
$ "Json"
Đã trả lời ngày 27 tháng 5 lúc 10:24May 27 at 10:24
Exaucaeexaucaeexaucae
1.4861 Huy hiệu vàng10 Huy hiệu bạc19 Huy hiệu đồng1 gold badge10 silver badges19 bronze badges
Còn cái này thì sao:
let str = "Java Script Object Notation"; let acronym = str.split(/\s/).reduce((response,word)=> response+=word.slice(0,1),'') console.log(acronym);6Ví dụ làm việc.
Đã trả lời ngày 26 tháng 11 năm 2011 lúc 16:36Nov 26, 2011 at 16:36
HugomghugomgMadara's Ghost
66.9K23 Huy hiệu vàng155 Huy hiệu bạc241 Huy hiệu Đồng50 gold badges260 silver badges306 bronze badges
1
Cách dễ nhất mà không có regex
let str = "Java Script Object Notation"; let acronym = str.split(/\s/).reduce((response,word)=> response+=word.slice(0,1),'') console.log(acronym);7Đã trả lời ngày 3 tháng 4 năm 2015 lúc 6:23
AlmisalmisJun 4, 2020 at 10:30
3.3872 Huy hiệu vàng26 Huy hiệu bạc54 Huy hiệu ĐồngJames
Điều này được thực hiện rất đơn giản với ES613 gold badges81 silver badges128 bronze badges
Điều này chỉ hoạt động với không gian hoặc bất cứ thứ gì được xác định trong phương thức 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 7
let str = "Java Script Object Notation"; let acronym = str.split(/\s/).reduce((response,word)=> response+=word.slice(0,1),'') console.log(acronym);8IE, 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 8 'JavaScript Object Notation'.match(/[A-Z]/g).join('') 9, v.v.
Maxshuty
let str = "Java Script Object Notation"; let acronym = str.split(/\s/).reduce((response,word)=> response+=word.slice(0,1),'') console.log(acronym);98.20510 Huy hiệu vàng57 Huy hiệu bạc71 Huy hiệu Đồngany natural language including Arabic.
Đã trả lời ngày 1 tháng 10 năm 2018 lúc 15:42
'Aa Bb'.match(/\b\w/g).join('') 0
Để thêm vào các ví dụ tuyệt vời, bạn có thể làm điều đó như thế này trong ES6Jul 3, 2020 at 12:21
Và điều này cũng hoạt động nhưng vui lòng bỏ qua nó, tôi đã đi một chút ở đây :-)Wiktor Stribiżew
Đã trả lời ngày 16 tháng 5 năm 2017 lúc 21:5134 gold badges399 silver badges503 bronze badges
Darryl Hebbesdarryl Hebbes
'Aa Bb'.match(/\b\w/g).join('') 1Output:
Huy hiệu vàng 9081
@BotNet Flaw: Tôi nghĩ rằng tôi đã giải quyết nó sau 3 ngày hướng dẫn biểu cảm thông thường:
==> Tôi là một con vật
(Được sử dụng để bắt m của tôi) vì ranh giới từ, nó dường như có tác dụng với tôi theo cách đó.♦
Đã trả lời ngày 15 tháng 4 năm 2017 lúc 13:5121 gold badges75 silver badges127 bronze badges
Đã trả lời ngày 5 tháng 11 năm 2021 lúc 8:02Nov 5, 2021 at 8:02
Điều này nên làm điều đó.
'Aa Bb'.match(/\b\w/g).join('') 2
Dyoo
Huy hiệu vàng 11,6K11 gold badge33 silver badges44 bronze badges
Đã trả lời ngày 26 tháng 11 năm 2011 lúc 16:36Nov 26, 2011 at 16:36
JessebueskingjessebueskingJesseBuesking
6.3683 Huy hiệu vàng43 Huy hiệu bạc88 Huy hiệu Đồng3 gold badges43 silver badges88 bronze badges
Các phiên bản biểu thức chính quy cho JavaScript không tương thích với unicode trên ODET hơn Ecmascript 6, vì vậy đối với những người muốn hỗ trợ các ký tự như "" "sẽ cần phải dựa vào các phiên bản không phải là REGEX của tập lệnh.
Sự kiện Khi trên phiên bản 6, bạn cần chỉ ra Unicode với \ u.
Thông tin chi tiết: //mathiasbynens.be/notes/es6-unicode-regex
Đã trả lời ngày 22 tháng 10 năm 2015 lúc 13:56Oct 22, 2015 at 13:56
SondrebsondrebSondreB
7886 Huy hiệu bạc14 Huy hiệu đồng6 silver badges14 bronze badges
Một tùy chọn khác sử dụng hàm string.split(' ').map(i => i.charAt(0)) //Inherit case of each letter string.split(' ').map(i => i.charAt(0)).toUpperCase() //Uppercase each letter string.split(' ').map(i => i.charAt(0)).toLowerCase() //lowercase each letter 5:
'Aa Bb'.match(/\b\w/g).join('') 3'Aa Bb'.match(/\b\w/g).join('') 4
Đã trả lời ngày 18 tháng 5 năm 2016 lúc 8:01May 18, 2016 at 8:01
Vadim Gremyachevvadim GremyachevVadim Gremyachev
56.5K20 Huy hiệu vàng125 Huy hiệu bạc185 Huy hiệu Đồng20 gold badges125 silver badges185 bronze badges
Điều này tương tự như những người khác, nhưng (IMHO) dễ đọc hơn:
'Aa Bb'.match(/\b\w/g).join('') 5Đã trả lời ngày 20 tháng 9 năm 2019 lúc 12:12Sep 20, 2019 at 12:12
ihakeihakeihake
1.6811 Huy hiệu vàng16 Huy hiệu bạc29 Huy hiệu đồng1 gold badge16 silver badges29 bronze badges
ES6 Giảm cách: reduce way:
'Aa Bb'.match(/\b\w/g).join('') 6Đã trả lời ngày 16 tháng 1 năm 2020 lúc 9:34Jan 16, 2020 at 9:34
user3818229user3818229user3818229
1.4672 Huy hiệu vàng19 Huy hiệu bạc42 Huy hiệu đồng2 gold badges19 silver badges42 bronze badges
Hãy thử chức năng này
'Aa Bb'.match(/\b\w/g).join('') 7