Câu hỏi Chuyển đổi chuỗi JavaScript thành tất cả các trường hợp thấp hơn?


Làm thế nào tôi có thể chuyển đổi một giá trị chuỗi JavaScript thành tất cả các chữ thường?

Ví dụ: "Tên của bạn" thành "tên của bạn"


1137
2017-09-30 20:22


gốc




Các câu trả lời:


var lowerCaseName = "Your Name".toLowerCase();

1512
2017-09-30 20:26



Hãy xem xét điều này cũng có, "toLowerCase không ảnh hưởng đến giá trị của chuỗi str chính nó". Điều này dựa trên tài liệu ở đây developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… - Cary Bondoc
thời gian và không gian phức tạp của toLowerCase() chức năng? - Ramzan Chasygov
@RamzanChasygov Đây là cả O (n) và nhanh hơn reimplementing nó trong JavaScript, trừ khi bạn có một công cụ JavaScript được lập trình bởi idiots rất thông minh. - wizzwizz4


Sử dụng toLowerCase hoặc là toLocaleLowerCase phương pháp của Chuỗi vật. Sự khác biệt là toLocaleLowerCase sẽ lấy địa điểm hiện tại của người dùng / máy chủ lưu trữ. Theo § 15.5.4.17 của Đặc tả ngôn ngữ ECMAScript (ECMA-262), toLocaleLowerCase

… Hoạt động chính xác giống như toLowerCase   ngoại trừ kết quả của nó là nhằm   mang lại kết quả chính xác cho máy chủ   ngôn ngữ hiện tại của môi trường, thay vào đó   so với kết quả không phụ thuộc vào miền địa phương.   Sẽ chỉ có sự khác biệt trong   vài trường hợp (như tiếng Thổ Nhĩ Kỳ), nơi   quy tắc cho ngôn ngữ đó xung đột với   các ánh xạ trường hợp Unicode thông thường.

Thí dụ:

var lower = 'Your Name'.toLowerCase();

Cũng lưu ý rằng toLowerCase và toLocaleLowerCase chức năng được triển khai để hoạt động chung trên bất kì loại giá trị. Do đó bạn có thể gọi các hàm này ngay cả trên khôngString các đối tượng. Làm như vậy sẽ ngụ ý chuyển đổi tự động thành giá trị chuỗi trước khi thay đổi trường hợp của mỗi ký tự trong giá trị chuỗi kết quả. Ví dụ, bạn có thể ứng dụng  toLowerCase trực tiếp vào một ngày như thế này:

var lower = String.prototype.toLowerCase.apply(new Date());

và có hiệu quả tương đương với:

var lower = new Date().toString().toLowerCase();

Dạng thứ hai thường được ưa thích vì tính đơn giản và dễ đọc của nó. Trên các phiên bản trước của IE, lần đầu tiên có lợi ích là nó có thể hoạt động với null giá trị. Kết quả của việc áp dụng toLowerCase hoặc là toLocaleLowerCase trên null sẽ mang lại null (và không phải là một điều kiện lỗi).


390
2017-09-30 21:51



1, câu trả lời này xứng đáng nhận được nhiều phiếu hơn so với câu trả lời được chấp nhận mà không giải thích gì cả, ý tôi là - Frederik.L
Phần về String.prototype.toLowerCase.apply(null) trở về null dường như không chính xác. Nó ném một TypeError ngoại lệ khi tôi thử nó. - JohnnyHK
@ JohnnyHK Bạn nói đúng. Đó là bit được sử dụng để giữ đúng trên các phiên bản trước đó của IE, nơi nó đã được kiểm tra tại thời điểm câu trả lời ban đầu được đăng. Tôi đã cập nhật câu trả lời để phản ánh phản hồi của bạn. Cảm ơn. - Atif Aziz


Có, bất kỳ chuỗi nào trong JavaScript đều có toLowerCase() phương thức sẽ trả về một chuỗi mới là chuỗi cũ trong tất cả các chữ thường. Chuỗi cũ sẽ không thay đổi.

Vì vậy, bạn có thể làm một cái gì đó như:

"Foo".toLowerCase();
document.getElementById('myField').value.toLowerCase();

24
2017-09-30 20:25





Hàm toLocaleUpperCase () hoặc hàm thường thấp hơn không hoạt động như chúng nên làm.

Ví dụ: trong hệ thống của tôi, Safari 4, Chrome 4 Beta, Firefox 3.5.x, nó chuyển đổi các chuỗi có ký tự tiếng Thổ Nhĩ Kỳ không chính xác.

Các trình duyệt tương ứng với navigator.language là "en-US", "tr", "en-US" tương ứng.

Nhưng không có cách nào để có được cài đặt Chấp nhận-Lang của người dùng trong trình duyệt theo như tôi có thể tìm thấy.

Chỉ Chrome cho tôi gặp sự cố mặc dù tôi đã định cấu hình mọi trình duyệt là ưu tiên tr-TR được ưu tiên.

Tôi nghĩ rằng các cài đặt này chỉ ảnh hưởng đến tiêu đề HTTP, nhưng chúng tôi không thể truy cập vào các cài đặt này thông qua JS.

bên trong Tài liệu của Mozilla nó nói "Các ký tự trong một chuỗi được chuyển thành ... trong khi tôn trọng ngôn ngữ hiện tại.

Đối với hầu hết các ngôn ngữ, điều này sẽ trả về giống như ... ".

Tôi nghĩ rằng nó có giá trị cho Thổ Nhĩ Kỳ, nó không khác biệt nó được cấu hình là en hoặc tr.

Trong tiếng Thổ Nhĩ Kỳ, nó sẽ chuyển đổi "DİNÇ" thành "dinç" và "DINÇ" thành "dınç" hoặc ngược lại.


16
2017-12-04 22:54



Accept-Language và navigator.language là hai cài đặt hoàn toàn riêng biệt. Accept-Language phản ánh tùy chọn đã chọn của người dùng cho những ngôn ngữ họ muốn nhận trong các trang web (và cài đặt này không thể truy cập được một cách bất thường đối với JS). navigator.language chỉ phản ánh bản địa hóa của trình duyệt web đã được cài đặt và thường không được sử dụng cho bất kỳ thứ gì. Cả hai giá trị này đều không liên quan đến ngôn ngữ hệ thống, là bit quyết định cái gì toLocaleLowerCase() sẽ làm; đó là cài đặt cấp hệ điều hành nằm ngoài phạm vi của các phần mở rộng của trình duyệt. - bobince
Tôi nghĩ rằng Accept-Language và navigator.language nên được bằng cách nào đó liên quan. Bạn có thể định cấu hình ngôn ngữ mặc định theo thứ tự thông qua màn hình cài đặt của trình duyệt, nhưng do đó bạn không thể định cấu hình navigator.language nào sẽ phản hồi. Tôi nghĩ rằng nên có một hình thức của hàm toLowerCase () mà có được một tham số miền địa phương. - sanilunlu
Yeah, thật ra phải có. Rất tiếc, các tính năng liên quan đến miền địa phương trong JavaScript yếu, ít được xác định và thường không đáng tin cậy. - bobince


thí dụ

<script type="text/javascript">
var yourstring = 'Your Name'
var lowercase = yourstring.toLowerCase();
document.write('original string:<b> ' + yourstring + '</b><br>');
document.write('converted sting <b>' + lowercase + '</b>');
</script>

thử nó

http://htmledit.squarefree.com/

11
2017-10-02 09:06





Tôi chú ý rằng rất nhiều người tìm kiếm cho strtolower() trong JavaScript. Họ đang mong đợi cùng tên chức năng như trong các ngôn ngữ khác, đó là lý do tại sao bài đăng này ở đây.

Tôi khuyên bạn nên sử dụng tự nhiên Hàm Javascript

"SomE StriNg".toLowerCase()

Đây là hàm hoạt động chính xác giống như hàm PHP (đối với những người đang chuyển mã PHP thành js)

function strToLower (str) {
    return String(str).toLowerCase();
}

9
2017-09-17 06:51



Cái gì + '' cho? - UpTheCreek
sử dụng String(str) - Onur Yıldırım


Lưu ý rằng hàm sẽ CHỈ hoạt động trên các đối tượng STRING.

Ví dụ, tôi đã tiêu thụ một plugin, và đã nhầm lẫn lý do tại sao tôi đã nhận được một "extension.tolowercase không phải là một hàm" lỗi JS.

 onChange: function(file, extension)
    {
      alert("extension.toLowerCase()=>" + extension.toLowerCase() + "<=");

Đã tạo lỗi "extension.toLowerCase không phải là hàm" Vì vậy, tôi đã thử đoạn mã này, điều này đã tiết lộ vấn đề!

alert("(typeof extension)=>" + (typeof extension) + "<=");;

Đầu ra là "(typeof extension) => object <=" - vì vậy AhHa, tôi đã không nhận được một chuỗi var cho đầu vào của tôi. Việc sửa chữa là thẳng về phía trước mặc dù - chỉ cần buộc điều darn vào một String !:

var extension = String(extension);

Sau khi cast, hàm extension.toLowerCase () hoạt động tốt.


6
2018-05-26 23:57





Phương thức hoặc hàm: toLowerCase (), toUpperCase ()

Mô tả: Các phương pháp này được sử dụng để bao gồm một chuỗi hoặc bảng chữ cái từ chữ thường đến chữ thường hoặc ngược lại. ví dụ: "và" thành "VÀ".

Chuyển đổi sang Upper Case: - Mã ví dụ: -

<script language=javascript>
var ss = " testing case conversion method ";
var result = ss.toUpperCase();
document.write(result);
</script>

Kết quả: TESTING CASE CONVERSION METHOD

Chuyển đổi sang chữ thường: - Mã ví dụ:

<script language=javascript>
var ss = " TESTING LOWERCASE CONVERT FUNCTION ";
var result = ss.toLowerCase();
document.write(result);
</script>

Kết quả: kiểm tra hàm chuyển đổi chữ thường

Giải thích: Trong các ví dụ trên,

toUpperCase() method converts any string to "UPPER" case letters.
toLowerCase() method converts any string to "lower" case letters.

6
2017-07-20 13:13





Chọn 1: sử dụng toLowerCase ();

var x = "ABC";
x=x.toLowerCase();

Chọn 2: Sử dụng chức năng của riêng bạn

 function convertToLowerCase(str) {
      var result = ''

      for (var i = 0; i < str.length; i++) {
        var code = str.charCodeAt(i)
        if (code > 64 && code < 91) {
          result += String.fromCharCode(code + 32)
        } else {
          result += str.charAt(i)
        }
      }
      return result
    }

Gọi nó là:

x= convertToLowerCase(x);

2
2017-09-15 08:54





Chỉ cần sử dụng JS toLowerCase()
let v = "Your Name" let u = v.toLowerCase(); hoặc là
let u = "Your Name".toLowerCase();


2
2018-05-30 10:12