Hướng dẫn remove uppercase in javascript - loại bỏ chữ hoa trong javascript

Thử cái này:

function toTitleCase(str) {
  return str.replace(
    /\w\S*/g,
    function(txt) {
      return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
    }
  );
}
Input:

Output:

Hướng dẫn remove uppercase in javascript - loại bỏ chữ hoa trong javascript

Meyi

6.7841 Huy hiệu vàng14 Huy hiệu bạc27 Huy hiệu đồng1 gold badge14 silver badges27 bronze badges

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

Greg Deangre trưởngGreg Dean

28.6K14 Huy hiệu vàng67 Huy hiệu bạc77 Huy hiệu đồng14 gold badges67 silver badges77 bronze badges

19

Nếu giải pháp CSS đáp ứng nhu cầu của bạn, bạn có thể áp dụng kiểu CSS biến đổi văn bản cho các điều khiển của bạn:

text-transform: capitalize;

Chỉ cần lưu ý rằng điều này sẽ chuyển đổi:

"pascal".toProperCase();
7 thành
"pascal".toProperCase();
8
"pascal".toProperCase();
9 thành
"pascal".toProperCase();
9 (không thay đổi)
const str = "foo bar baz";
const newStr = str.split(' ')
   .map(w => w[0].toUpperCase() + w.substring(1).toLowerCase())
   .join(' ');
console.log(newStr);
1 thành
const str = "foo bar baz";
const newStr = str.split(' ')
   .map(w => w[0].toUpperCase() + w.substring(1).toLowerCase())
   .join(' ');
console.log(newStr);
2 (không chính xác)
const str = "foo bar baz";
const newStr = str.split(' ')
   .map(w => w[0].toUpperCase() + w.substring(1).toLowerCase())
   .join(' ');
console.log(newStr);
3 thành
const str = "foo bar baz";
const newStr = str.split(' ')
   .map(w => w[0].toUpperCase() + w.substring(1).toLowerCase())
   .join(' ');
console.log(newStr);
4 (không chính xác)
"pascal".toProperCase();
7 to
"pascal".toProperCase();
8
"pascal".toProperCase();
9 to
"pascal".toProperCase();
9 (no change)
const str = "foo bar baz";
const newStr = str.split(' ')
   .map(w => w[0].toUpperCase() + w.substring(1).toLowerCase())
   .join(' ');
console.log(newStr);
1 to
const str = "foo bar baz";
const newStr = str.split(' ')
   .map(w => w[0].toUpperCase() + w.substring(1).toLowerCase())
   .join(' ');
console.log(newStr);
2 (incorrect)
const str = "foo bar baz";
const newStr = str.split(' ')
   .map(w => w[0].toUpperCase() + w.substring(1).toLowerCase())
   .join(' ');
console.log(newStr);
3 to
const str = "foo bar baz";
const newStr = str.split(' ')
   .map(w => w[0].toUpperCase() + w.substring(1).toLowerCase())
   .join(' ');
console.log(newStr);
4 (incorrect)

Michael

7.7515 huy hiệu vàng57 Huy hiệu bạc87 Huy hiệu đồng5 gold badges57 silver badges87 bronze badges

Đã trả lời ngày 16 tháng 6 năm 2010 lúc 14:58Jun 16, 2010 at 14:58

Hướng dẫn remove uppercase in javascript - loại bỏ chữ hoa trong javascript

Talha Ashfaquetalha AshfaqueTalha Ashfaque

3.2401 Huy hiệu vàng14 Huy hiệu bạc7 Huy hiệu đồng1 gold badge14 silver badges7 bronze badges

13

Một cách thanh lịch hơn một chút, điều chỉnh chức năng của Greg Dean:

String.prototype.toProperCase = function () {
    return this.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
};

Gọi nó như:

"pascal".toProperCase();

Đã trả lời ngày 7 tháng 4 năm 2011 lúc 0:14Apr 7, 2011 at 0:14

TuantuanTuan

5.3131 Huy hiệu vàng21 Huy hiệu bạc17 Huy hiệu đồng1 gold badge21 silver badges17 bronze badges

8

Đây là phiên bản của tôi, IMO thật dễ hiểu và thanh lịch.

const str = "foo bar baz";
const newStr = str.split(' ')
   .map(w => w[0].toUpperCase() + w.substring(1).toLowerCase())
   .join(' ');
console.log(newStr);

Hướng dẫn remove uppercase in javascript - loại bỏ chữ hoa trong javascript

Xinthose

2.7432 huy hiệu vàng38 Huy hiệu bạc57 Huy hiệu đồng2 gold badges38 silver badges57 bronze badges

Đã trả lời ngày 5 tháng 3 năm 2014 lúc 9:07Mar 5, 2014 at 9:07

Hướng dẫn remove uppercase in javascript - loại bỏ chữ hoa trong javascript

a8ma8ma8m

9.1784 Huy hiệu vàng35 Huy hiệu bạc40 Huy hiệu đồng4 gold badges35 silver badges40 bronze badges

9

Ở đây, chức năng của tôi chuyển đổi thành trường hợp tiêu đề nhưng cũng bảo tồn các từ viết tắt được xác định là chữ hoa và các từ nhỏ là chữ thường:

String.prototype.toTitleCase = function() {
  var i, j, str, lowers, uppers;
  str = this.replace(/([^\W_]+[^\s-]*) */g, function(txt) {
    return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
  });

  // Certain minor words should be left lowercase unless 
  // they are the first or last words in the string
  lowers = ['A', 'An', 'The', 'And', 'But', 'Or', 'For', 'Nor', 'As', 'At', 
  'By', 'For', 'From', 'In', 'Into', 'Near', 'Of', 'On', 'Onto', 'To', 'With'];
  for (i = 0, j = lowers.length; i < j; i++)
    str = str.replace(new RegExp('\\s' + lowers[i] + '\\s', 'g'), 
      function(txt) {
        return txt.toLowerCase();
      });

  // Certain words such as initialisms or acronyms should be left uppercase
  uppers = ['Id', 'Tv'];
  for (i = 0, j = uppers.length; i < j; i++)
    str = str.replace(new RegExp('\\b' + uppers[i] + '\\b', 'g'), 
      uppers[i].toUpperCase());

  return str;
}

Ví dụ:

"TO LOGIN TO THIS SITE and watch tv, please enter a valid id:".toTitleCase();
// Returns: "To Login to This Site and Watch TV, Please Enter a Valid ID:"

Đã trả lời ngày 25 tháng 6 năm 2011 lúc 1:04Jun 25, 2011 at 1:04

Hướng dẫn remove uppercase in javascript - loại bỏ chữ hoa trong javascript

Gian hàng Geoffrey BoothgeoffreyGeoffrey Booth

6,9805 Huy hiệu vàng34 Huy hiệu bạc40 Huy hiệu đồng5 gold badges34 silver badges40 bronze badges

10

Tôi thích những câu trả lời sau đây hơn các câu trả lời khác. Nó chỉ phù hợp với chữ cái đầu tiên của mỗi từ và tận dụng nó. Mã đơn giản hơn, dễ đọc và ít hơn byte. Nó bảo tồn các chữ in hoa hiện có để ngăn chặn các từ viết tắt bị bóp méo. Tuy nhiên, bạn luôn có thể gọi

const str = "foo bar baz";
const newStr = str.split(' ')
   .map(w => w[0].toUpperCase() + w.substring(1).toLowerCase())
   .join(' ');
console.log(newStr);
5 trên chuỗi của mình trước.

function title(str) {
  return str.replace(/(^|\s)\S/g, function(t) { return t.toUpperCase() });
}

Bạn có thể thêm điều này vào nguyên mẫu chuỗi của mình sẽ cho phép bạn

const str = "foo bar baz";
const newStr = str.split(' ')
   .map(w => w[0].toUpperCase() + w.substring(1).toLowerCase())
   .join(' ');
console.log(newStr);
6 như sau:

String.prototype.toTitle = function() {
  return this.replace(/(^|\s)\S/g, function(t) { return t.toUpperCase() });
}

Example:

Đã trả lời ngày 26 tháng 10 năm 2017 lúc 16:36Oct 26, 2017 at 16:36

Tom Kaytom KayTom Kay

1.47215 huy hiệu bạc25 Huy hiệu đồng15 silver badges25 bronze badges

10

Bạn có thể ngay lập tức

const str = "foo bar baz";
const newStr = str.split(' ')
   .map(w => w[0].toUpperCase() + w.substring(1).toLowerCase())
   .join(' ');
console.log(newStr);
7 chuỗi, và sau đó chỉ
const str = "foo bar baz";
const newStr = str.split(' ')
   .map(w => w[0].toUpperCase() + w.substring(1).toLowerCase())
   .join(' ');
console.log(newStr);
8 chữ cái đầu tiên của mỗi từ. Trở thành một lớp lót 1 rất đơn giản:

Input:

Output:
0

Đã trả lời ngày 18 tháng 10 năm 2016 lúc 15:09Oct 18, 2016 at 15:09

KevbotkevbotKevBot

16,9K5 Huy hiệu vàng49 Huy hiệu bạc67 Huy hiệu Đồng5 gold badges49 silver badges67 bronze badges

6

Điểm chuẩn

TL;DR

Người chiến thắng của điểm chuẩn này là Old Old For Loop:

Input:

Output:
1

Thông tin chi tiết

Tôi đã lấy những câu trả lời phổ biến và khác biệt nhất và đưa ra một điểm chuẩn với những câu hỏi đó.

Đây là kết quả trên MacBook Pro của tôi:

Hướng dẫn remove uppercase in javascript - loại bỏ chữ hoa trong javascript

Và để hoàn thiện, đây là các chức năng được sử dụng:

Input:

Output:
2

Lưu ý rằng tôi cố tình không thay đổi nguyên mẫu vì tôi coi đó là một thực tế thực sự tồi tệ và tôi không nghĩ chúng ta nên thúc đẩy thực hành như vậy trong câu trả lời của mình. Điều này chỉ ổn đối với cơ sở mã nhỏ khi bạn là người duy nhất làm việc trên nó.

Nếu bạn muốn thêm bất kỳ cách nào khác để làm điều đó vào điểm chuẩn này, xin vui lòng nhận xét một liên kết đến câu trả lời!


Chỉnh sửa 2022 Mac M1: Trên máy tính mới của tôi, với Chrome gần đây hơn, Split Wins. Nếu bạn thực sự quan tâm đến hiệu suất trên một máy cụ thể, bạn nên tự mình chạy điểm chuẩn On my new computer, with more recent chrome, split wins. If you really care about performance on a specific machine you should run the benchmark yourself

Đã trả lời ngày 19 tháng 11 năm 2020 lúc 10:56Nov 19, 2020 at 10:56

Hướng dẫn remove uppercase in javascript - loại bỏ chữ hoa trong javascript

Ulysse Bnulysse BnUlysse BN

9.1657 Huy hiệu vàng48 Huy hiệu bạc76 Huy hiệu đồng7 gold badges48 silver badges76 bronze badges

4

Input:

Output:
3

Đã trả lời ngày 24 tháng 12 năm 2013 lúc 15:17Dec 24, 2013 at 15:17

Hướng dẫn remove uppercase in javascript - loại bỏ chữ hoa trong javascript

Simosimosimo

Phù vàng 14,6K7 Huy hiệu vàng44 Huy hiệu đồng 587 gold badges44 silver badges58 bronze badges

5

Ngạc nhiên khi thấy không ai đề cập đến việc sử dụng tham số REST. Dưới đây là một lớp lót đơn giản sử dụng các tham số REST ES6.

Input:

Output:
4

Đã trả lời ngày 18 tháng 5 năm 2020 lúc 16:53May 18, 2020 at 16:53

Hướng dẫn remove uppercase in javascript - loại bỏ chữ hoa trong javascript

Kapil Pandeykapil Pandeykapil pandey

1.7531 Huy hiệu vàng12 Huy hiệu bạc25 Huy hiệu đồng1 gold badge12 silver badges25 bronze badges

1

Mà không sử dụng regex chỉ để tham khảo:

Input:

Output:
5

adiga

32.7k8 Huy hiệu vàng55 Huy hiệu bạc79 Huy hiệu đồng8 gold badges55 silver badges79 bronze badges

Đã trả lời ngày 19 tháng 12 năm 2011 lúc 16:25Dec 19, 2011 at 16:25

Hướng dẫn remove uppercase in javascript - loại bỏ chữ hoa trong javascript

MikemikeMike

4273 Huy hiệu bạc6 Huy hiệu Đồng3 silver badges6 bronze badges

1

Chỉ trong trường hợp bạn lo lắng về những từ filler đó, bạn luôn có thể chỉ nói với chức năng những gì không nên tận dụng.

Input:

Output:
6

Hy vọng điều này sẽ giúp bạn ra ngoài.

chỉnh sửa

Nếu bạn muốn xử lý các từ keo dẫn đầu, bạn có thể theo dõi w/ một biến khác:

Input:

Output:
7

Đã trả lời ngày 13 tháng 11 năm 2010 lúc 5:17Nov 13, 2010 at 5:17

fncompfncompfncomp

5.9203 Huy hiệu vàng33 Huy hiệu bạc42 Huy hiệu Đồng3 gold badges33 silver badges42 bronze badges

6

Nếu bạn cần một câu trả lời đúng về ngữ pháp:

Câu trả lời này có tính đến các giới từ như "của", "từ", .. đầu ra sẽ tạo ra một tiêu đề kiểu biên tập mà bạn mong đợi sẽ thấy trong một bài báo.

Chức năng TotitLecase

Hàm có tính đến các quy tắc ngữ pháp được liệt kê ở đây. Chức năng cũng hợp nhất khoảng trắng và loại bỏ các ký tự đặc biệt (sửa đổi regex cho nhu cầu của bạn)

Input:

Output:
8

Bài kiểm tra đơn vị để đảm bảo tính chính xác

Input:

Output:
9

Xin lưu ý rằng tôi đang loại bỏ khá nhiều ký tự đặc biệt khỏi các chuỗi được cung cấp. Bạn sẽ cần phải điều chỉnh Regex để giải quyết các yêu cầu của dự án của bạn.

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

Hướng dẫn remove uppercase in javascript - loại bỏ chữ hoa trong javascript

dipole_momentdipole_momentdipole_moment

4.6362 Huy hiệu vàng38 Huy hiệu bạc55 Huy hiệu Đồng2 gold badges38 silver badges55 bronze badges

4

Nếu Regex được sử dụng trong các giải pháp trên đang khiến bạn bối rối, hãy thử mã này:

text-transform: capitalize;
0

Đã trả lời ngày 28 tháng 2 năm 2016 lúc 10:16Feb 28, 2016 at 10:16

Hướng dẫn remove uppercase in javascript - loại bỏ chữ hoa trong javascript

6

Tôi đã thực hiện chức năng này có thể xử lý tên cuối cùng (vì vậy đó không phải là trường hợp tiêu đề), chẳng hạn như "McDonald" hoặc "MacDonald" hoặc "O'Toole" hoặc "D'Orazio". Tuy nhiên, nó không xử lý các tên tiếng Đức hoặc Hà Lan với "van" hoặc "von" thường ở trường hợp thấp hơn ... Tôi tin rằng "de" thường là trường hợp thấp hơn như "Robert de Niro". Những điều này vẫn sẽ phải được giải quyết.

text-transform: capitalize;
1

Đã trả lời ngày 3 tháng 2 năm 2010 lúc 22:22Feb 3, 2010 at 22:22

LwangamanlwangamanLwangaman

1291 Huy hiệu bạc2 Huy hiệu đồng1 silver badge2 bronze badges

3

Nếu bạn có thể sử dụng các thư viện của bên thứ ba trong mã của mình thì Lodash có chức năng trợ giúp cho chúng tôi.

https://lodash.com/docs/4.17.3#startCase

text-transform: capitalize;
2

Đã trả lời ngày 29 tháng 12 năm 2016 lúc 11:27Dec 29, 2016 at 11:27

Waqaswaqaswaqas

4.2673 Huy hiệu vàng33 Huy hiệu bạc42 Huy hiệu Đồng3 gold badges33 silver badges42 bronze badges

ES 6

text-transform: capitalize;
3

else

text-transform: capitalize;
4

Hướng dẫn remove uppercase in javascript - loại bỏ chữ hoa trong javascript

Steve Bennett

105K30 Huy hiệu vàng153 Huy hiệu bạc206 Huy hiệu đồng30 gold badges153 silver badges206 bronze badges

Đã trả lời ngày 27 tháng 10 năm 2016 lúc 15:52Oct 27, 2016 at 15:52

JSSridharjssridharjssridhar

4604 Huy hiệu bạc10 Huy hiệu đồng4 silver badges10 bronze badges

5

Đầu tiên, hãy chuyển đổi

const str = "foo bar baz";
const newStr = str.split(' ')
   .map(w => w[0].toUpperCase() + w.substring(1).toLowerCase())
   .join(' ');
console.log(newStr);
9 của bạn thành mảng bằng cách chia nó theo không gian:

text-transform: capitalize;
5

Sau đó sử dụng Array.Map để tạo một mảng mới chứa các từ được viết hoa.

text-transform: capitalize;
6

Sau đó tham gia mảng mới với không gian:

text-transform: capitalize;
7

NOTE:

Điều này tất nhiên có một nhược điểm. Điều này sẽ chỉ viết hoa chữ cái đầu tiên của mỗi từ. Theo thông tin, điều này có nghĩa là nó xử lý mọi chuỗi được phân tách bằng khoảng trống là 1 từ.

Giả sử bạn có:

String.prototype.toTitleCase = function() {
  var i, j, str, lowers, uppers;
  str = this.replace(/([^\W_]+[^\s-]*) */g, function(txt) {
    return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
  });

  // Certain minor words should be left lowercase unless 
  // they are the first or last words in the string
  lowers = ['A', 'An', 'The', 'And', 'But', 'Or', 'For', 'Nor', 'As', 'At', 
  'By', 'For', 'From', 'In', 'Into', 'Near', 'Of', 'On', 'Onto', 'To', 'With'];
  for (i = 0, j = lowers.length; i < j; i++)
    str = str.replace(new RegExp('\\s' + lowers[i] + '\\s', 'g'), 
      function(txt) {
        return txt.toLowerCase();
      });

  // Certain words such as initialisms or acronyms should be left uppercase
  uppers = ['Id', 'Tv'];
  for (i = 0, j = uppers.length; i < j; i++)
    str = str.replace(new RegExp('\\b' + uppers[i] + '\\b', 'g'), 
      uppers[i].toUpperCase());

  return str;
}
0

Điều này sẽ sản xuất

Tôi là một nồi trà nhỏ/nhỏ

so với dự kiến

Tôi là một nồi trà nhỏ/nhỏ

Trong trường hợp đó, sử dụng Regex và .replace sẽ thực hiện thủ thuật:

với es6:

text-transform: capitalize;
8

hoặc không có es6:ES6:

text-transform: capitalize;
9

Đã trả lời ngày 30 tháng 9 năm 2017 lúc 9:28Sep 30, 2017 at 9:28

Hướng dẫn remove uppercase in javascript - loại bỏ chữ hoa trong javascript

XgeoxgeoxGeo

2.1192 Huy hiệu vàng16 Huy hiệu bạc39 Huy hiệu Đồng2 gold badges16 silver badges39 bronze badges

Hầu hết các câu trả lời này dường như bỏ qua khả năng sử dụng từ metacharacter ranh giới (\ b). Một phiên bản ngắn hơn của câu trả lời của Greg Dean sử dụng nó:

String.prototype.toProperCase = function () {
    return this.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
};
0

Hoạt động cho các tên gạch nối như Jim-Bob quá.

Đã trả lời ngày 16 tháng 7 năm 2014 lúc 14:59Jul 16, 2014 at 14:59

lewax00lewax00lewax00

1881 Huy hiệu bạc8 Huy hiệu đồng1 silver badge8 bronze badges

3

String.prototype.toProperCase = function () {
    return this.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
};
1

Có vẻ như hoạt động ... được thử nghiệm với những điều trên, "The Quick Brown, Fox?/Jumps/ ^ Over ^ The Lazy! file1.txt ".

Nếu bạn muốn thứ 2 thay vì thứ 2, bạn có thể thay đổi thành

String.prototype.toTitleCase = function() {
  var i, j, str, lowers, uppers;
  str = this.replace(/([^\W_]+[^\s-]*) */g, function(txt) {
    return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
  });

  // Certain minor words should be left lowercase unless 
  // they are the first or last words in the string
  lowers = ['A', 'An', 'The', 'And', 'But', 'Or', 'For', 'Nor', 'As', 'At', 
  'By', 'For', 'From', 'In', 'Into', 'Near', 'Of', 'On', 'Onto', 'To', 'With'];
  for (i = 0, j = lowers.length; i < j; i++)
    str = str.replace(new RegExp('\\s' + lowers[i] + '\\s', 'g'), 
      function(txt) {
        return txt.toLowerCase();
      });

  // Certain words such as initialisms or acronyms should be left uppercase
  uppers = ['Id', 'Tv'];
  for (i = 0, j = uppers.length; i < j; i++)
    str = str.replace(new RegExp('\\b' + uppers[i] + '\\b', 'g'), 
      uppers[i].toUpperCase());

  return str;
}
1.

Mẫu đầu tiên có thể được đơn giản hóa như:

String.prototype.toProperCase = function () {
    return this.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
};
2

Đã trả lời ngày 13 tháng 10 năm 2008 lúc 8:17Oct 13, 2008 at 8:17

PhilhophilhoPhiLho

39,9k6 huy hiệu vàng94 Huy hiệu bạc132 Huy hiệu đồng6 gold badges94 silver badges132 bronze badges

Hãy thử điều này, một cách ngắn nhất:

String.prototype.toProperCase = function () {
    return this.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
};
3

Ông Polywhirl

37.1K12 Huy hiệu vàng80 Huy hiệu bạc126 Huy hiệu đồng12 gold badges80 silver badges126 bronze badges

Đã trả lời ngày 6 tháng 6 năm 2017 lúc 9:52Jun 6, 2017 at 9:52

VikramvikramVikram

5845 Huy hiệu bạc16 Huy hiệu đồng5 silver badges16 bronze badges

1

Thử cái này

String.prototype.toProperCase = function () {
    return this.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
};
4

Thí dụ

String.prototype.toProperCase = function () {
    return this.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
};
5

Đã trả lời ngày 16 tháng 5 năm 2012 lúc 19:05May 16, 2012 at 19:05

Maxi Baezmaxi BaezMaxi Baez

5805 Huy hiệu bạc13 Huy hiệu Đồng5 silver badges13 bronze badges

0

Sử dụng

String.prototype.toTitleCase = function() {
  var i, j, str, lowers, uppers;
  str = this.replace(/([^\W_]+[^\s-]*) */g, function(txt) {
    return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
  });

  // Certain minor words should be left lowercase unless 
  // they are the first or last words in the string
  lowers = ['A', 'An', 'The', 'And', 'But', 'Or', 'For', 'Nor', 'As', 'At', 
  'By', 'For', 'From', 'In', 'Into', 'Near', 'Of', 'On', 'Onto', 'To', 'With'];
  for (i = 0, j = lowers.length; i < j; i++)
    str = str.replace(new RegExp('\\s' + lowers[i] + '\\s', 'g'), 
      function(txt) {
        return txt.toLowerCase();
      });

  // Certain words such as initialisms or acronyms should be left uppercase
  uppers = ['Id', 'Tv'];
  for (i = 0, j = uppers.length; i < j; i++)
    str = str.replace(new RegExp('\\b' + uppers[i] + '\\b', 'g'), 
      uppers[i].toUpperCase());

  return str;
}
2 để hỗ trợ Diacritics:

String.prototype.toProperCase = function () {
    return this.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
};
6

Tuy nhiên: "Ánh nắng mặt trời (màu vàng)" "Ánh nắng mặt trời (màu vàng)"sunshine (yellow)" ⇒ "Sunshine (yellow)"

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

Hướng dẫn remove uppercase in javascript - loại bỏ chữ hoa trong javascript

le_mle_mle_m

18.4K9 Huy hiệu vàng61 Huy hiệu bạc74 Huy hiệu đồng9 gold badges61 silver badges74 bronze badges

Tôi nghĩ rằng đơn giản nhất là sử dụng CSS.

String.prototype.toProperCase = function () {
    return this.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
};
7

Đã trả lời ngày 7 tháng 7 năm 2017 lúc 5:01Jul 7, 2017 at 5:01

Wondimwondimwondim

68913 Huy hiệu bạc27 Huy hiệu đồng13 silver badges27 bronze badges

3

String.prototype.toProperCase = function () {
    return this.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
};
8

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

ProximoproximoProximo

5,85711 Huy hiệu vàng47 Huy hiệu bạc64 Huy hiệu đồng11 gold badges47 silver badges64 bronze badges

3

Đây là một chức năng ES6 thực sự đơn giản và súc tích để làm điều này:

String.prototype.toProperCase = function () {
    return this.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
};
9

Hoạt động tốt được bao gồm trong thư mục

String.prototype.toTitleCase = function() {
  var i, j, str, lowers, uppers;
  str = this.replace(/([^\W_]+[^\s-]*) */g, function(txt) {
    return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
  });

  // Certain minor words should be left lowercase unless 
  // they are the first or last words in the string
  lowers = ['A', 'An', 'The', 'And', 'But', 'Or', 'For', 'Nor', 'As', 'At', 
  'By', 'For', 'From', 'In', 'Into', 'Near', 'Of', 'On', 'Onto', 'To', 'With'];
  for (i = 0, j = lowers.length; i < j; i++)
    str = str.replace(new RegExp('\\s' + lowers[i] + '\\s', 'g'), 
      function(txt) {
        return txt.toLowerCase();
      });

  // Certain words such as initialisms or acronyms should be left uppercase
  uppers = ['Id', 'Tv'];
  for (i = 0, j = uppers.length; i < j; i++)
    str = str.replace(new RegExp('\\b' + uppers[i] + '\\b', 'g'), 
      uppers[i].toUpperCase());

  return str;
}
3 và được sử dụng như sau:

"pascal".toProperCase();
0

Đã trả lời ngày 19 tháng 11 năm 2020 lúc 10:39Nov 19, 2020 at 10:39

Hedley Smithhedley SmithHedley Smith

1.26915 huy hiệu bạc12 Huy hiệu đồng15 silver badges12 bronze badges

1

Đây là chức năng của tôi đang chăm sóc các ký tự có dấu (quan trọng đối với tiếng Pháp!) Và điều đó có thể bật/tắt xử lý các ngoại lệ thấp hơn. Hy vọng điều đó sẽ giúp.

"pascal".toProperCase();
1

Đã trả lời ngày 11 tháng 12 năm 2016 lúc 16:36Dec 11, 2016 at 16:36

Hướng dẫn remove uppercase in javascript - loại bỏ chữ hoa trong javascript

OuatatazouatatazOuatataz

1652 Huy hiệu bạc11 Huy hiệu đồng2 silver badges11 bronze badges

Đây là một giải pháp khác sử dụng CSS (và JavaScript, nếu văn bản bạn muốn chuyển đổi là ở chữ hoa):

HTML

"pascal".toProperCase();
2

JS

"pascal".toProperCase();
3

CSS

"pascal".toProperCase();
4

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

Henriehenriehenrie

1471 Huy hiệu bạc12 Huy hiệu đồng1 silver badge12 bronze badges

Tôi đã thử nghiệm giải pháp này cho Thổ Nhĩ Kỳ và nó cũng hoạt động với các nhân vật đặc biệt.

"pascal".toProperCase();
5

Tôi đã thêm "TolocalelowerCase" khi bắt đầu vì tôi tất cả dữ liệu CAPS. Bạn có thể loại bỏ nó nếu bạn không cần nó.

Sử dụng các hoạt động địa phương rất quan trọng đối với các ngôn ngữ không phải tiếng Anh.

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

KeremkeremKerem

1032 Huy hiệu bạc7 Huy hiệu đồng2 silver badges7 bronze badges

4

Lấy giải pháp "Lewax00" Tôi đã tạo ra giải pháp đơn giản này buộc phải "W" bắt đầu bằng không gian hoặc "W" bắt đầu từ de Word, nhưng không thể loại bỏ các không gian trung gian thêm.

"pascal".toProperCase();
6

Kết quả là "Sofía Vergara".

Đã trả lời ngày 30 tháng 9 năm 2014 lúc 18:52Sep 30, 2014 at 18:52

Hướng dẫn remove uppercase in javascript - loại bỏ chữ hoa trong javascript

AserewareaserewareAsereware

9896 Huy hiệu bạc7 Huy hiệu Đồng6 silver badges7 bronze badges