Chuyển văn bản sang snake_case underscore_case Miễn phí Trực tuyến An toàn
Dán một dòng và đọc lại bằng snake_case. Mọi thứ diễn ra trong trình duyệt của bạn — không có gì bạn gõ được gửi đi đâu cả — và các quy tắc theo ngôn ngữ của trang này, không theo tiếng Anh.
Viết theo cách khác
Không tải gì lên
Cùng một dòng, trong cả bảy cách viết
| Cách viết | Cùng một dòng, viết như thế |
|---|---|
| chữ hoa | CRÈME BRÛLÉE CHO 2 — STRASSE 17, FOOBAR |
| chữ thường | crème brûlée cho 2 — straße 17, foobar |
| Title Case | Crème Brûlée Cho 2 — Straße 17, Foobar |
| snake_case | crème_brûlée_cho_2_straße_17_foo_bar |
| kebab-case | crème-brûlée-cho-2-straße-17-foo-bar |
| camelCase | crèmeBrûléeCho2Straße17FooBar |
| một địa chỉ URL | creme-brulee-cho-2-strasse-17-foobar |
Những lối viết này đến từ đâu
Chữ hoa và chữ thường từng là hai bảng chữ cái khác nhau. Chữ hoa là chữ La Mã, đục vào đá bằng đục; chữ thường bắt nguồn từ chữ nhỏ Caroline, nắn ra bởi ngòi bút chạy nhanh trên da cừu. Thợ in giữ hai loại trong hai khay riêng — khay trên và khay dưới — và cái tên ở lại rất lâu sau khi những chiếc khay đã biến mất. Các lối viết của lập trình trẻ hơn nhiều và được nghĩ ra để giải quyết một chuyện duy nhất: một cái tên không được chứa khoảng trắng. snake_case ra đời từ thuở đầu của C, camelCase từ Smalltalk, kebab-case từ Lisp, còn slug từ nhu cầu đưa một tiêu đề cho người đọc vào một địa chỉ vốn không cho phép khoảng trắng và dấu.
Bạn gặp chúng ở đâu
Viết hoa từng chữ thuộc về tiêu đề và bìa sách; viết hoa kiểu câu thuộc về gần như mọi thứ còn lại, và ngày càng thuộc về giao diện, vì nó đọc nhanh hơn. snake_case đặt tên cho cột cơ sở dữ liệu và biến Python; camelCase đặt tên cho biến JavaScript và phương thức Java; kebab-case đặt tên cho lớp CSS và tên tệp trong các dự án web. Slug là thứ biến tiêu đề một bài viết thành phần cuối của địa chỉ, và đó là phép đổi duy nhất ở đây mà máy tìm kiếm đọc được.
Những câu hỏi thường gặp
Vì sao chuyển sang chữ hoa đôi khi làm đổi số lượng chữ cái?
Vì chữ hoa chữ thường là thuộc tính của ngôn ngữ, chứ không phải của ký tự. Chữ ß của tiếng Đức khi viết hoa thành SS, nên một chữ hóa hai. Tiếng Thổ Nhĩ Kỳ có i có chấm và i không chấm, và chữ hoa của i là İ chứ không phải I — sai chỗ này là biến một từ Thổ thành một từ khác. Các phép đổi ở đây theo quy tắc của chính ngôn ngữ trang ấy, vì vậy cùng một đầu vào có thể cho kết quả khác nhau trên trang tiếng Thổ và trang tiếng Anh.
Vì sao slug bỏ dấu và dấu câu?
Vì một địa chỉ phải sống sót qua việc được chép vào tin nhắn, in ra giấy và gõ lại bằng tay. Chữ có dấu là hợp lệ trong URL hiện đại, nhưng khi sao chép lại bị mã hóa bằng dấu phần trăm, khiến một địa chỉ dễ đọc hóa thành một dãy ký hiệu. Rút chúng về chữ cái thường, chữ số và dấu nối giữ cho địa chỉ dễ đọc, dễ chia sẻ và y hệt nhau ở mọi nơi nó xuất hiện.
Kết quả có chính xác không?
Ở những chỗ hai đơn vị được định nghĩa qua nhau bằng số nguyên thì có — trang nói rõ điều đó ngay trên con số, và chỗ duy nhất làm tròn là số chữ số hiển thị. Ở những chỗ tỷ số không có thập phân hữu hạn, trang hiển thị mười hai chữ số có nghĩa và nói rằng quan hệ là xấp xỉ, thay vì làm như không phải vậy.
Những gì tôi gõ có rời khỏi máy của tôi không?
Không. Phép tính chạy trong trình duyệt của bạn; không có gì được gửi đi, và cũng chẳng có máy chủ nào để nhận. Tải trang một lần rồi là nó vẫn chạy khi đã tắt mạng.
Vì sao bạn chuyển văn bản sang snake_case
Một lập trình viên không thể đặt tên biến là annual report total, vì một cái tên không thể chứa khoảng trắng. Một cột cơ sở dữ liệu không thể gọi là Customer First Name. Một tệp tên Final Draft (2).docx sớm muộn sẽ làm phiền một tập lệnh. Đâu đó trên đường đi, cụm từ của con người phải thành một từ duy nhất, và dạng mà rất nhiều cộng đồng đã chọn là snake_case: mọi chữ cái viết thường, các từ nối bằng dấu gạch dưới, annual_report_total, customer_first_name, final_draft_2. Chuyển văn bản sang snake_case là lấy bất kỳ cụm từ nào, ở bất kỳ trạng thái nào, và biến nó thành dạng đó trong một bước.
Hãy dán một dòng và đọc lại nó dưới dạng snake_case. Phép chuyển đổi diễn ra trong trình duyệt của bạn, không có gì bạn gõ được gửi đi đâu cả, và các quy tắc theo ngôn ngữ của trang này chứ không phải tiếng Anh. Nó cắt dòng thành các từ, viết thường chúng và nối bằng dấu gạch dưới. Một dòng đã viết ở dạng camelCase cũng được cắt ở các chữ hoa của nó, nên fooBar thành foo_bar. Bên dưới bạn sẽ thấy chính xác điều đó nghĩa là gì, điều gì bị bỏ, cách trang xử lý các chữ cái khó của những ngôn ngữ khác nhau, nơi nào snake_case là quy ước và nơi nào không, và những cái bẫy vướng người vội vàng chuyển văn bản sang snake_case.
Phép chuyển đổi làm gì
Cắt, viết thường, nối
Trang trước hết cắt dòng thành các từ. Rồi nó viết thường từng từ và nối chúng bằng dấu gạch dưới. Dòng Crème brûlée for 2 — straße 17, fooBar trả về là crème_brûlée_for_2_straße_17_foo_bar. Dấu thanh được giữ, các số vẫn là từ riêng, dấu gạch ngang và dấu phẩy biến mất, và fooBar bị cắt làm đôi, vì chữ hoa bên trong nó đánh dấu một ranh giới.
Nơi các nhát cắt rơi vào
Ranh giới giữa các từ là một khoảng trắng, một dấu câu, một dấu gạch ngang, một ký hiệu hoặc sự đổi từ chữ thường sang chữ hoa bên trong một từ. Vì vậy cụm customerFirstName, cụm Customer First Name và cụm customer-first-name đều thành customer_first_name. Đó là sức mạnh thực tế của phép chuyển đổi: nó chấp nhận gần như mọi điểm xuất phát và luôn đến cùng một nơi.
Sao chép kết quả
Một nút bên cạnh kết quả sao chép nó vào bộ nhớ tạm. Hãy dán nó vào trình soạn thảo, lược đồ hoặc hộp thoại tệp nơi cần cái tên.
Phép chuyển đổi không làm gì
Nó không giữ dấu câu
Dấu phẩy, dấu chấm và dấu gạch ngang là ranh giới giữa các từ, không phải ký tự để mang sang. Đó là điều bạn muốn cho một tên tệp hay một cột cơ sở dữ liệu, và không phải điều bạn muốn cho văn xuôi. Nếu bạn cho một câu chạy qua trang, nó trả về như một cái tên, không phải một câu, và dấu câu gốc biến mất.
Nó không bỏ dấu thanh
Dòng giữ các chữ cái có dấu: crème_brûlée. Nhiều hệ thống chấp nhận chúng, nhưng một số thì không, và một tên chứa chúng có thể gây rắc rối trong các công cụ cũ hơn. Nếu bạn cần chữ cái thường, hãy dùng trang URL slug, nơi bỏ các dấu khỏi chữ cái Latin.
Nó không kiểm tra tên có hợp lệ trong ngôn ngữ của bạn không
Các ngôn ngữ lập trình có quy tắc riêng. Một số cấm tên bắt đầu bằng chữ số, một số dành riêng các từ như class hay return. Trang biến văn bản thành một cái tên đúng hình dạng, và bạn vẫn cần bảo đảm tên hợp lệ nơi bạn dùng. Một cụm như 2 for 1 offer thành 2_for_1_offer, mà hầu hết ngôn ngữ từ chối ngay từ đầu.
Ngôn ngữ quan trọng
Chữ viết không có khoảng trắng
Cắt thành từ cần có ranh giới. Tiếng Trung và tiếng Nhật được viết không có khoảng trắng, nên một dòng bằng các chữ viết đó trả về thành một từ duy nhất. Trang thà nói rõ như vậy còn hơn cắt ở một chỗ nó đoán, vì một nhát cắt sai sẽ tạo ra một cái tên trông hợp lý và có nghĩa sai.
Tiếng Thổ Nhĩ Kỳ và chữ i có chấm
Viết thường theo quy tắc của ngôn ngữ của trang. Trong tiếng Thổ Nhĩ Kỳ, dạng thường của I là chữ ı không chấm, và dạng thường của İ là i. Một bộ chuyển đổi áp dụng quy tắc tiếng Anh sẽ đổi các từ. Trang này theo ngôn ngữ nó được viết.
Tiếng Đức và chữ s nhọn
Chữ ß trong tiếng Đức vốn đã là chữ thường và được giữ, như trong straße_17. Chữ hoa STRASSE trả về là strasse, vì dạng chữ hoa không nhớ nó đến từ ß hay từ hai chữ cái.
Chữ viết từ phải sang trái và chữ viết Ấn Độ
Tiếng Ả Rập, tiếng Do Thái và các chữ viết Ấn Độ có khoảng trắng giữa các từ và không có chữ hoa chữ thường, nên trang nối các từ của chúng bằng dấu gạch dưới và để nguyên các chữ cái. Một công cụ cụ thể có chấp nhận những tên như vậy hay không là chuyện khác.
Nơi snake_case là quy ước
Python và Ruby
Hướng dẫn phong cách của Python khuyến nghị snake_case cho hàm, biến và mô-đun, và Ruby theo cùng thói quen. Nếu bạn viết mã bằng một trong hai, tên của bạn gần như luôn ở dạng này.
Cơ sở dữ liệu
Tên bảng và cột trong SQL thường là snake_case: customer_id, created_at, order_total. Nó tránh việc phải đặt tên trong dấu nháy và an toàn trên các hệ thống cơ sở dữ liệu, một số trong đó gộp tên không nháy về một kiểu chữ và sẽ biến camelCase thành một chuỗi chữ cái khó đọc.
Tệp dữ liệu và API
Nhiều dịch vụ web dùng khóa snake_case trong JSON của chúng, và bảng tính xuất để xử lý tiếp thường mang tiêu đề snake_case. Nếu dữ liệu của bạn đang đi qua Chuyển CSV sang JSON, hàng tiêu đề trở thành các khóa, và các tiêu đề snake_case gọn gàng làm kết quả dễ dùng.
Hằng số và biến môi trường
Hằng số và biến môi trường theo quy ước được viết bằng chữ hoa với dấu gạch dưới: MAX_RETRIES, DATABASE_URL. Cách để có chúng là chuyển văn bản sang snake_case trước rồi nâng kết quả lên bằng chuyển văn bản sang chữ hoa.
Tên tệp
Chữ thường với dấu gạch dưới là một tên tệp an toàn trên mọi hệ thống, và nó sắp xếp và tìm kiếm có thể đoán trước. Nhiều nhiếp ảnh gia, nhà nghiên cứu và quản trị viên dùng nó chính vì lý do đó.
Nơi nó không phải là quy ước
JavaScript và Java
Các ngôn ngữ này ưa camelCase cho biến và hàm, và PascalCase cho lớp. Một tên từ tập lệnh Python có thể cần chuyển đổi trước khi xuất hiện trong tệp JavaScript. Xem camelCase cho việc đó.
CSS và địa chỉ web
Tên lớp CSS và địa chỉ web thường dùng dấu gạch nối, không phải gạch dưới. Công cụ cho việc đó là kebab-case. Công cụ tìm kiếm coi dấu gạch nối là dấu phân cách từ và dấu gạch dưới là chất nối, một khác biệt nhỏ nằm sau thói quen địa chỉ có gạch nối.
Văn xuôi và tiêu đề
snake_case dành cho tên, không phải để đọc. Một tiêu đề hay một câu viết bằng nó rất khó cho mắt. Với văn bản cho con người, hãy giữ các từ và khoảng trắng, và với một tiêu đề hãy cân nhắc Title Case.
Cách chuyển văn bản sang snake_case ở đây
Dán hoặc gõ văn bản của bạn
Nhập cụm từ vào ô đầu tiên. Kết quả hiện ngay ở ô thứ hai, để bạn xem nó đổi khi bạn gõ.
Kiểm tra các nhát cắt
Hãy nhìn nơi các từ được chia. Một từ như iPhone hay eBay bị cắt ở chữ hoa, và một từ viết tắt như HTTPServer cần liếc qua để thấy nó ra đúng như bạn định.
Sao chép nó
Bấm nút sao chép và dán kết quả vào nơi bạn cần. Với các dạng khác của cùng dòng, xem bên dưới.
Dùng snake_case trong cả một dự án
Một quy ước cho cả ngăn xếp
Một dự án trộn lẫn các kiểu đặt tên khó đọc hơn một dự án hơi xấu nhưng nhất quán. Nếu cơ sở dữ liệu dùng snake_case, mã nói chuyện với nó thường cũng vậy, và các tệp di chuyển giữa chúng theo sau. Khi bạn chuyển văn bản sang snake_case cho một cột hay trường mới, bạn đang chọn cái tên mà mọi tầng khác sẽ phải chung sống, nên hãy chọn một lần và mang nó xuyên suốt.
Chuyển tên giữa các quy ước
Sớm muộn một tên từ một quy ước phải xuất hiện trong quy ước khác. Một cột cơ sở dữ liệu customer_first_name trở thành customerFirstName trong một đối tượng JavaScript và customer-first-name trong một lớp CSS hay một URL. Thay vì gõ lại từng cái bằng tay, hãy dán bản gốc vào trang tạo dạng bạn cần: camelCase cho mã trong họ C và JavaScript và kebab-case cho kiểu dáng và địa chỉ. Ba dạng của cùng một tên là bản dịch chính xác của nhau, và một bộ chuyển đổi tạo chúng nhất quán.
Tệp cấu hình
Tệp cài đặt thường dùng khóa snake_case, đặc biệt trong YAML mà nhiều công cụ dùng. Khi bạn chuẩn bị một tệp như vậy từ dữ liệu giữ ở dạng JSON, Chuyển JSON sang YAML giữ các khóa như bạn đã viết, và Chuyển YAML sang JSON làm ngược lại. Hãy chốt snake_case cho các khóa trước khi bắt đầu, và phép chuyển đổi giữa các định dạng sẽ không làm xáo trộn chúng.
Đổi tên hàng loạt
Nếu bạn thừa hưởng một tệp dữ liệu có tiêu đề là hỗn hợp các kiểu, hãy chuyển từng tiêu đề bằng trang này và thay chúng trong một lượt. Hãy thử với một mẫu nhỏ trước, vì một tập lệnh đọc tệp theo tiêu đề sẽ hỏng nếu một tên đổi chỉ ở một số chỗ. Hãy giữ một danh sách tên cũ và mới bên cạnh tệp để đồng nghiệp thấy điều gì đã thay đổi.
Viết những cái tên bền lâu
Nói thứ đó là gì, không phải nó được lưu thế nào
Một tên tốt mô tả nội dung. order_total nói lên con số có nghĩa gì; col7 thì không. Khi bạn chuyển văn bản sang snake_case, hãy bảo đảm cụm từ bạn bắt đầu là cụm từ rõ nhất bạn có thể viết, vì bộ chuyển đổi sẽ trung thành giữ sự rõ ràng hay sự lộn xộn của nó.
Tránh các chữ viết tắt chỉ mình bạn hiểu
Một cái tên như cust_fn_dt là một câu đố với bất kỳ ai khác, và với chính bạn sau sáu tháng. Dấu gạch dưới rẻ, và thêm từ cũng vậy. Một cái tên dài đọc như một câu là món quà tốt hơn cho người kế tiếp so với một cái ngắn cần chú giải.
Giữ số ít và số nhiều nhất quán
Hãy quyết định bảng được đặt tên ở số ít, customer, hay số nhiều, customers, và giữ theo. Quy ước quan trọng ít hơn sự đồng nhất của nó. Một cụm được biến thành snake_case giữ bất cứ số nào bạn đã cho.
Thêm tiền tố khi có ích
Trong một lược đồ lớn, một tiền tố ngắn nhóm các tên liên quan: billing_address, billing_city, billing_country. Gõ cụm từ với tiền tố và chuyển đổi cho kết quả nhất quán, và một danh sách theo thứ tự chữ cái khi đó tự nhóm lại.
Thử các tên trước khi cam kết
Trước khi một tên đi vào lược đồ hay API, hãy thử nó ở những nơi nó sẽ xuất hiện: một truy vấn, một biến, một danh sách tệp. Nếu nó đọc tự nhiên ở cả ba, nó sẽ phục vụ tốt. Nếu thấy vụng, hãy rút gọn hoặc diễn đạt lại cụm từ và chuyển văn bản sang snake_case lần nữa. Một phút thử ở đầu giúp khỏi phải đổi tên qua hàng trăm tệp về sau.
Cùng một dòng trong cả bảy cách viết
Một bảng các dạng
Bên dưới công cụ chuyển đổi, một bảng cho thấy dòng ví dụ trong cả bảy dạng mà trang cung cấp: chữ hoa, chữ thường, Title Case, snake_case, kebab-case, camelCase và URL slug. Đó là cách nhanh để thấy cùng những từ trông thế nào trong từng dạng.
Các dạng này từ đâu ra
Hai bảng chữ cái
Chữ hoa và chữ thường từng là hai bảng chữ cái khác nhau. Chữ hoa là chữ La Mã, đục vào đá bằng cái đục; chữ thường xuống từ chữ thường Carolingian, được tạo hình bằng một cây bút di chuyển nhanh trên giấy da. Thợ in giữ hai loại trong những khay riêng, khay trên và khay dưới, và các tên đó bám lại rất lâu sau khi các khay đã biến mất.
Tên không có khoảng trắng
Các dạng lập trình trẻ hơn nhiều và được phát minh để giải quyết một vấn đề: một cái tên không thể chứa khoảng trắng. snake_case đến từ C thuở đầu, camelCase từ Smalltalk, kebab-case từ Lisp, và URL slug từ nhu cầu đặt một tiêu đề của con người vào một địa chỉ nơi khoảng trắng và dấu thanh không được phép. Dấu gạch dưới là một ký tự tiện lợi trên bàn phím thời đó, và trông như một khoảng trắng nằm trên dòng.
Những cái bẫy khi bạn chuyển văn bản sang snake_case
Bắt đầu một tên bằng chữ số
Hầu hết ngôn ngữ và cơ sở dữ liệu từ chối một tên bắt đầu bằng số. Hãy thêm một chữ cái hoặc một từ ở phía trước nếu cụm từ bắt đầu bằng một số.
Mong các từ dành riêng được xử lý
Một cụm như class hay order có thể là từ dành riêng trong ngôn ngữ của bạn hoặc trong SQL. Trang không biết, và bạn phải kiểm tra.
Từ viết tắt
Một từ viết tắt bên trong một tên camelCase, như parseHTMLString, có thể bị cắt thành parse_h_t_m_l_string hoặc parse_html_string tùy quy tắc. Hãy kiểm tra kết quả có phải điều bạn muốn không.
Tên rất dài
Cơ sở dữ liệu và hệ thống tệp áp đặt giới hạn độ dài. Một cụm dài biến thành tên có thể chạm giới hạn. Hãy rút gọn cách diễn đạt trước khi chuyển đổi.
Những câu hỏi mọi người hay hỏi trước khi chuyển đổi
Dấu câu thì sao?
Nó được coi là ranh giới giữa các từ và không được mang sang.
Các số có được giữ không?
Có, như từ riêng, ngăn cách bằng dấu gạch dưới.
Nó có xử lý đầu vào camelCase không?
Có. Một chữ hoa bên trong một từ đánh dấu một nhát cắt, nên fooBar thành foo_bar.
Tôi có thể dùng cho các ngôn ngữ khác không?
Có, với quy tắc của ngôn ngữ của trang. Các chữ viết không có khoảng trắng, như tiếng Trung và tiếng Nhật, trả về thành một từ duy nhất.
Văn bản của tôi có được tải lên không?
Không. Những gì bạn gõ ở đây không bao giờ được gửi đi đâu cả, nên một bản nháp, một mật khẩu hay tên khách hàng an toàn ở đây như trong một trình soạn thảo văn bản.
Làm sao để có dấu gạch nối thay vào?
Bằng chuyển văn bản sang kebab-case.
Một ví dụ cụ thể
Giả sử bạn đang xây một cơ sở dữ liệu nhỏ cho một thư viện và nhân viên đã gửi bạn các tiêu đề cột từ bảng tính của họ: Book Title, Author's Last Name, Year Published (YYYY), ISBN-13. Bạn chuyển từng cái lần lượt và đọc book_title, author_s_last_name, year_published_yyyy và isbn_13. Dấu nháy đơn biến cột tác giả thành thứ lộn xộn, nên bạn rút gọn bản gốc thành Author Last Name và chuyển lại: author_last_name. Cột năm rõ hơn khi không có ghi chú định dạng, nên bạn giữ year_published. Bốn tên cột gọn gàng, viết trong một phút, và mỗi cái là một tên mà cơ sở dữ liệu chấp nhận.
Một danh sách kiểm tra ngắn
Trước khi chuyển đổi
Viết cụm từ bằng từ đơn giản, không có ghi chú trong ngoặc. Kiểm tra đích có chấp nhận dấu gạch dưới và dấu thanh không.
Trong khi chuyển đổi
Dán cụm từ, nhìn các nhát cắt và bảo đảm tên bắt đầu bằng một chữ cái.
Sau khi chuyển đổi
Kiểm tra độ dài, kiểm tra với các từ dành riêng và giữ hồ sơ cụm từ gốc, để cái tên có thể truy ngược về ý nghĩa của nó.
Những lỗi thường gặp
Dùng snake_case cho văn bản người ta sẽ đọc
Nó dành cho tên, không phải văn xuôi.
Quên điều đích cho phép
Chữ số ở đầu, dấu thanh và giới hạn độ dài khác nhau giữa các hệ thống.
Chuyển từ viết tắt mà không nhìn
Hãy kiểm tra các nhát cắt quanh chúng.
Văn bản của bạn ở lại trên thiết bị của bạn
Phép chuyển đổi diễn ra cục bộ. Văn bản của bạn được trình duyệt của chính bạn xử lý và không có gì được gửi đi đâu cả. Không có gì để xóa sau đó và không có tài khoản nào để tạo. Đó là cách đơn giản để chuyển văn bản sang snake_case.
Tóm tắt
Để chuyển văn bản sang snake_case ở đây, hãy dán một dòng và đọc lại nó với các từ được cắt, viết thường và nối bằng dấu gạch dưới. Một dòng đã viết ở dạng camelCase cũng được cắt ở đó, nên fooBar thành foo_bar. Trang không giữ dấu câu: dấu phẩy, dấu chấm và dấu gạch ngang là ranh giới giữa các từ, không phải ký tự để mang sang, đó là điều bạn muốn cho một tên tệp hay một cột cơ sở dữ liệu và không phải cho văn xuôi. Cắt thành từ cần có ranh giới, nên tiếng Trung và tiếng Nhật, được viết không có khoảng trắng, trả về thành một từ duy nhất. Viết thường theo ngôn ngữ của trang. Không có gì được tải lên.