แปลงข้อความเป็น snake_case underscore_case ฟรี ออนไลน์ ปลอดภัย
วางหนึ่งบรรทัดแล้วอ่านผลกลับมาในรูปแบบ snake_case ทุกอย่างเกิดขึ้นในเบราว์เซอร์ของคุณ — สิ่งที่คุณพิมพ์จะไม่ถูกส่งไปที่ใด และกฎต่าง ๆ เป็นไปตามภาษาของหน้านี้ ไม่ใช่ภาษาอังกฤษ
เขียนในอีกรูปแบบหนึ่ง
ไม่มีการอัปโหลด
บรรทัดเดียวกันในทั้งเจ็ดรูปแบบ
| รูปแบบการเขียน | บรรทัดเดียวกัน เขียนในรูปแบบนั้น |
|---|---|
| ตัวพิมพ์ใหญ่ | CRÈME BRÛLÉE สำหรับ 2 ท่าน — STRASSE 17, FOOBAR |
| ตัวพิมพ์เล็ก | crème brûlée สำหรับ 2 ท่าน — straße 17, foobar |
| Title Case | Crème Brûlée สำหรับ 2 ท่าน — Straße 17, Foobar |
| snake_case | crème_brûlée_สำหร_บ_2_ท_าน_straße_17_foo_bar |
| kebab-case | crème-brûlée-สำหร-บ-2-ท-าน-straße-17-foo-bar |
| camelCase | crèmeBrûléeสำหรบ2ทานStraße17FooBar |
| slug ของ URL | creme-brulee-สำหร-บ-2-ท-าน-strasse-17-foobar |
รูปแบบเหล่านี้มาจากไหน
ตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเคยเป็นตัวอักษรสองชุดที่ต่างกัน ตัวพิมพ์ใหญ่เป็นแบบโรมัน ใช้สกัดลงบนหิน ส่วนตัวพิมพ์เล็กสืบมาจากอักษรมินัสคูลแบบการอแล็งเฌียง ซึ่งเกิดจากปากกาที่เคลื่อนไปบนแผ่นหนังอย่างรวดเร็ว ช่างพิมพ์เก็บอักษรสองชุดนี้ไว้ในถาดแยกกัน คือถาดบน (upper case) และถาดล่าง (lower case) และชื่อเหล่านี้ก็ติดมานานหลังจากไม่มีถาดแล้ว ส่วนรูปแบบสำหรับงานโปรแกรมมีอายุน้อยกว่ามาก และถูกคิดขึ้นเพื่อแก้ปัญหาข้อเดียว คือชื่อไม่สามารถมีช่องว่างได้ snake_case มาจากภาษา C ในยุคแรก camelCase มาจาก Smalltalk kebab-case มาจาก Lisp และ URL slug เกิดจากความจำเป็นที่ต้องนำชื่อเรื่องที่คนอ่านเข้าใจไปใส่ในที่อยู่เว็บ ซึ่งไม่อนุญาตให้มีช่องว่างและเครื่องหมายกำกับเสียง
คุณจะพบได้ที่ไหน
Title Case เหมาะกับหัวข้อและชื่อหนังสือ ส่วนตัวพิมพ์ใหญ่เฉพาะต้นประโยค (sentence case) เหมาะกับแทบทุกอย่างที่เหลือ และใช้กับหน้าจออินเทอร์เฟซมากขึ้นเรื่อย ๆ เพราะอ่านได้เร็วกว่า snake_case ใช้ตั้งชื่อคอลัมน์ในฐานข้อมูลและตัวแปรใน Python camelCase ใช้ตั้งชื่อตัวแปรใน JavaScript และเมธอดใน Java kebab-case ใช้ตั้งชื่อคลาส CSS และชื่อไฟล์ในโปรเจกต์เว็บ ส่วน slug คือสิ่งที่เปลี่ยนพาดหัวบทความให้เป็นส่วนท้ายของที่อยู่เว็บ และเป็นการแปลงเพียงอย่างเดียวในหน้านี้ที่เสิร์ชเอนจินอ่าน
คำถามที่คนมักถาม
ทำไมการเปลี่ยนเป็นตัวพิมพ์ใหญ่จึงบางครั้งทำให้จำนวนตัวอักษรเปลี่ยนไป
เพราะตัวพิมพ์ใหญ่และเล็กเป็นคุณสมบัติของภาษา ไม่ใช่ของตัวอักษรแต่ละตัว ตัว ß ในภาษาเยอรมันจะกลายเป็น SS เมื่อเป็นตัวพิมพ์ใหญ่ ตัวอักษรหนึ่งตัวจึงกลายเป็นสองตัว ภาษาตุรกีมี i แบบมีจุดและแบบไม่มีจุด และการเปลี่ยน i เป็นตัวพิมพ์ใหญ่จะได้ İ ไม่ใช่ I ถ้าทำผิด คำภาษาตุรกีจะกลายเป็นอีกคำหนึ่ง การแปลงในหน้านี้ทำตามกฎของภาษาที่หน้านั้นใช้อยู่ ดังนั้นข้อความเดียวกันจึงอาจให้ผลต่างกันระหว่างหน้าภาษาตุรกีกับหน้าภาษาอังกฤษ
ทำไม slug จึงตัดเครื่องหมายกำกับเสียงและเครื่องหมายวรรคตอนออก
เพราะที่อยู่เว็บต้องทนต่อการถูกคัดลอกลงในข้อความ พิมพ์ลงบนกระดาษ และพิมพ์กลับเข้ามาด้วยมือ ตัวอักษรที่มีเครื่องหมายกำกับเสียงใช้ได้ใน URL สมัยใหม่ แต่เมื่อคัดลอกจะถูกเข้ารหัสแบบเปอร์เซ็นต์ ทำให้ที่อยู่ที่อ่านง่ายกลายเป็นสายสัญลักษณ์ยาวเหยียด การลดให้เหลือเพียงตัวอักษรธรรมดา ตัวเลข และขีดกลาง ช่วยให้ที่อยู่อ่านง่าย แชร์ต่อได้ และเหมือนกันทุกที่ที่ปรากฏ
คำตอบแม่นยำหรือไม่?
ถ้าหน่วยทั้งสองกำหนดค่าอิงกันด้วยจำนวนเต็ม คำตอบก็แม่นยำ — หน้านี้บอกไว้เหนือตัวเลข และการปัดเศษมีเพียงในจำนวนหลักที่แสดง แต่ถ้าอัตราส่วนไม่เป็นทศนิยมจำกัด หน้านี้จะแสดง 12 หลักนัยสำคัญ และบอกว่าความสัมพันธ์นั้นเป็นค่าประมาณ แทนที่จะแสร้งว่าแม่นยำ
สิ่งที่ฉันพิมพ์จะออกจากอุปกรณ์ของฉันหรือไม่?
ไม่ การคำนวณทำในเบราว์เซอร์ของคุณ ไม่มีอะไรถูกอัปโหลด และก็ไม่มีเซิร์ฟเวอร์ให้อัปโหลดไปด้วย โหลดหน้านี้เพียงครั้งเดียว แล้วจะใช้งานต่อได้แม้ปิดเครือข่าย
ทำไมคุณจึงแปลงข้อความเป็น snake_case
โปรแกรมเมอร์ตั้งชื่อตัวแปรว่า annual report total ไม่ได้ เพราะชื่อห้ามมีช่องว่าง คอลัมน์ในฐานข้อมูลก็เรียกว่า Customer First Name ไม่ได้ และไฟล์ที่ชื่อ Final Draft (2).docx ไม่ช้าก็เร็วจะสร้างปัญหาให้สคริปต์ ที่ไหนสักแห่งตลอดเส้นทาง วลีที่มนุษย์เขียนต้องกลายเป็นคำเดียว และรูปแบบที่ชุมชนจำนวนมากลงตัวใช้ก็คือ snake_case คือตัวอักษรเล็กทั้งหมดและคำต่าง ๆ เชื่อมกันด้วยขีดล่าง เช่น annual_report_total, customer_first_name, final_draft_2 การแปลงข้อความเป็น snake_case คือการนำวลีใดก็ตามในสภาพใดก็ตามมาเปลี่ยนให้เป็นรูปแบบนั้นในขั้นตอนเดียว
วางหนึ่งบรรทัดแล้วอ่านผลลัพธ์ในรูปแบบ snake_case การแปลงเกิดขึ้นในเบราว์เซอร์ของคุณ สิ่งที่คุณพิมพ์ไม่ถูกส่งไปที่ใด และกฎเป็นไปตามภาษาของหน้านี้ ไม่ใช่ภาษาอังกฤษ หน้านี้ตัดบรรทัดเป็นคำ แปลงเป็นตัวพิมพ์เล็ก แล้วเชื่อมด้วยขีดล่าง บรรทัดที่เขียนเป็น camelCase อยู่แล้วจะถูกตัดตรงตัวพิมพ์ใหญ่ด้วย ดังนั้น fooBar จึงกลายเป็น foo_bar ด้านล่างนี้คุณจะพบว่าสิ่งนั้นหมายถึงอะไรกันแน่ อะไรถูกตัดทิ้ง หน้านี้จัดการกับตัวอักษรที่ยุ่งยากของภาษาต่าง ๆ อย่างไร ที่ใดที่ snake_case เป็นธรรมเนียมและที่ใดที่ไม่ใช่ และกับดักที่ทำให้คนที่รีบแปลงข้อความเป็น snake_case พลาดได้
การแปลงทำอะไร
ตัด แปลงเป็นตัวพิมพ์เล็ก เชื่อม
หน้านี้ตัดบรรทัดเป็นคำก่อน จากนั้นแปลงแต่ละคำเป็นตัวพิมพ์เล็กและเชื่อมด้วยขีดล่าง บรรทัด Crème brûlée for 2 — straße 17, fooBar จะกลับมาเป็น crème_brûlée_for_2_straße_17_foo_bar เครื่องหมายเน้นเสียงยังอยู่ ตัวเลขยังเป็นคำของตัวเอง เครื่องหมายขีดยาวและเครื่องหมายจุลภาคหายไป และ fooBar ถูกตัดเป็นสองส่วน เพราะตัวพิมพ์ใหญ่ภายในคำนั้นเป็นจุดแบ่ง
จุดที่ตัด
ขอบเขตของคำคือช่องว่าง เครื่องหมายวรรคตอน เครื่องหมายขีด สัญลักษณ์ หรือการเปลี่ยนจากตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่ภายในคำ ดังนั้นวลี customerFirstName วลี Customer First Name และวลี customer-first-name จึงกลายเป็น customer_first_name ทั้งหมด นี่คือจุดแข็งที่ใช้งานได้จริงของการแปลง คือรับจุดเริ่มต้นได้เกือบทุกแบบและได้ผลลัพธ์ที่เดียวกันเสมอ
การคัดลอกผลลัพธ์
ปุ่มข้างผลลัพธ์จะคัดลอกไปยังคลิปบอร์ด วางลงในโปรแกรมแก้ไข สคีมา หรือกล่องโต้ตอบไฟล์ที่ต้องใช้ชื่อนั้น
การแปลงไม่ทำอะไร
ไม่เก็บเครื่องหมายวรรคตอน
เครื่องหมายจุลภาค จุด และขีดคือขอบเขตระหว่างคำ ไม่ใช่อักขระที่ต้องคงไว้ นั่นคือสิ่งที่คุณต้องการสำหรับชื่อไฟล์หรือคอลัมน์ฐานข้อมูล แต่ไม่ใช่สิ่งที่คุณต้องการสำหรับเนื้อความ หากคุณนำประโยคผ่านหน้านี้ มันจะกลับมาเป็นชื่อ ไม่ใช่ประโยค และเครื่องหมายวรรคตอนเดิมจะหายไป
ไม่ลบเครื่องหมายเน้นเสียง
บรรทัดคงตัวอักษรที่มีเครื่องหมายเน้นเสียงไว้: crème_brûlée หลายระบบรับได้ แต่บางระบบไม่รับ และชื่อที่มีเครื่องหมายเหล่านั้นอาจสร้างปัญหาในเครื่องมือรุ่นเก่า หากคุณต้องการตัวอักษรธรรมดา ให้ใช้หน้า URL slug ซึ่งถอดเครื่องหมายออกจากตัวอักษรละติน
ไม่ตรวจว่าชื่อใช้ได้ในภาษาของคุณ
ภาษาโปรแกรมมีกฎของตัวเอง บางภาษาห้ามชื่อที่ขึ้นต้นด้วยตัวเลข บางภาษาสงวนคำอย่าง class หรือ return หน้านี้เปลี่ยนข้อความเป็นชื่อที่มีรูปทรงถูกต้อง และคุณยังต้องตรวจสอบเองว่าชื่อนั้นใช้ได้ในที่ที่คุณใช้ วลีอย่าง 2 for 1 offer จะกลายเป็น 2_for_1_offer ซึ่งภาษาส่วนใหญ่ปฏิเสธตั้งแต่ตัวแรก
ภาษาสำคัญ
ระบบการเขียนที่ไม่มีช่องว่าง
การตัดเป็นคำต้องมีขอบเขต ภาษาจีนและภาษาญี่ปุ่นเขียนโดยไม่เว้นวรรค ดังนั้นบรรทัดในอักษรเหล่านั้นจะกลับมาเป็นคำเดียว หน้านี้เลือกที่จะบอกอย่างนั้นแทนที่จะตัดตรงที่เดาเอา เพราะการตัดผิดจะได้ชื่อที่ดูสมเหตุสมผลแต่มีความหมายผิด
ภาษาตุรกีและตัว i มีจุด
การแปลงเป็นตัวพิมพ์เล็กเป็นไปตามกฎของภาษาของหน้านี้ ในภาษาตุรกี รูปเล็กของ I คือ ı ที่ไม่มีจุด และรูปเล็กของ İ คือ i ตัวแปลงที่ใช้กฎภาษาอังกฤษจะเปลี่ยนคำ หน้านี้ทำตามภาษาที่มันเขียนด้วย
ภาษาเยอรมันและ s คม
ß ของภาษาเยอรมันเป็นตัวพิมพ์เล็กอยู่แล้วและถูกคงไว้ เช่น straße_17 ส่วน STRASSE ตัวพิมพ์ใหญ่จะกลับมาเป็น strasse เพราะรูปตัวพิมพ์ใหญ่จำไม่ได้ว่ามาจาก ß หรือมาจากอักษรสองตัว
อักษรเขียนจากขวาไปซ้ายและอักษรอินเดีย
ภาษาอาหรับ ฮีบรู และอักษรของอินเดียมีช่องว่างระหว่างคำและไม่มีตัวพิมพ์ใหญ่เล็ก หน้านี้จึงเชื่อมคำของอักษรเหล่านั้นด้วยขีดล่างและปล่อยตัวอักษรไว้ตามเดิม ส่วนเครื่องมือใดรับชื่อแบบนั้นหรือไม่เป็นอีกเรื่องหนึ่ง
ที่ใดที่ snake_case เป็นธรรมเนียม
Python และ Ruby
คู่มือสไตล์ของ Python แนะนำ snake_case สำหรับฟังก์ชัน ตัวแปร และโมดูล และ Ruby ก็ทำตามความเคยชินเดียวกัน หากคุณเขียนโค้ดในภาษาใดภาษาหนึ่งนี้ ชื่อของคุณเกือบทั้งหมดจะอยู่ในรูปแบบนี้
ฐานข้อมูล
ชื่อตารางและคอลัมน์ใน SQL มักเป็น snake_case เช่น customer_id, created_at, order_total ซึ่งช่วยให้ไม่ต้องใส่เครื่องหมายคำพูดครอบชื่อ และปลอดภัยในทุกระบบฐานข้อมูล บางระบบแปลงชื่อที่ไม่มีเครื่องหมายคำพูดให้เป็นตัวพิมพ์แบบเดียวและจะเปลี่ยน camelCase เป็นตัวอักษรเรียงกันที่อ่านไม่ออก
ไฟล์ข้อมูลและ API
บริการเว็บจำนวนมากใช้คีย์แบบ snake_case ใน JSON และสเปรดชีตที่ส่งออกไปประมวลผลต่อมักมีหัวคอลัมน์แบบ snake_case หากข้อมูลของคุณกำลังผ่าน แปลง CSV เป็น JSON แถวหัวคอลัมน์จะกลายเป็นคีย์ และหัวคอลัมน์ snake_case ที่เป็นระเบียบทำให้ผลลัพธ์ใช้งานง่าย
ค่าคงที่และตัวแปรสภาพแวดล้อม
ค่าคงที่และตัวแปรสภาพแวดล้อมโดยธรรมเนียมเขียนเป็นตัวพิมพ์ใหญ่คั่นด้วยขีดล่าง เช่น MAX_RETRIES, DATABASE_URL วิธีที่จะได้คือแปลงข้อความเป็น snake_case ก่อน แล้วยกผลลัพธ์เป็นตัวพิมพ์ใหญ่ด้วย แปลงข้อความเป็นตัวพิมพ์ใหญ่
ชื่อไฟล์
ตัวพิมพ์เล็กคั่นด้วยขีดล่างเป็นชื่อไฟล์ที่ปลอดภัยในทุกระบบ และเรียงลำดับกับค้นหาได้อย่างคาดเดาได้ ช่างภาพ นักวิจัย และผู้ดูแลระบบจำนวนมากใช้รูปแบบนี้ด้วยเหตุผลนั้นเอง
ที่ใดที่ไม่ใช่ธรรมเนียม
JavaScript และ Java
ภาษาเหล่านี้นิยม camelCase สำหรับตัวแปรและฟังก์ชัน และ PascalCase สำหรับคลาส ชื่อจากสคริปต์ Python อาจต้องแปลงก่อนจะปรากฏในไฟล์ JavaScript ดู camelCase สำหรับเรื่องนั้น
CSS และที่อยู่เว็บ
ชื่อคลาส CSS และที่อยู่เว็บมักใช้ขีดกลาง ไม่ใช่ขีดล่าง เครื่องมือสำหรับเรื่องนั้นคือ kebab-case เสิร์ชเอนจินถือขีดกลางเป็นตัวคั่นคำและขีดล่างเป็นตัวเชื่อม ความต่างเล็ก ๆ นี้อยู่เบื้องหลังความเคยชินที่ใช้ที่อยู่แบบมีขีดกลาง
เนื้อความและชื่อเรื่อง
snake_case ใช้สำหรับชื่อ ไม่ใช่สำหรับอ่าน ชื่อเรื่องหรือประโยคในรูปแบบนี้อ่านยากต่อสายตา สำหรับข้อความที่มนุษย์อ่าน ให้คงคำและช่องว่างไว้ และสำหรับหัวเรื่องลองพิจารณา Title Case
วิธีแปลงข้อความเป็น snake_case ที่นี่
วางหรือพิมพ์ข้อความของคุณ
ใส่วลีในช่องแรก ผลลัพธ์จะปรากฏทันทีในช่องที่สอง คุณจึงดูมันเปลี่ยนไปได้ขณะพิมพ์
ตรวจจุดที่ตัด
ดูว่าคำถูกแบ่งตรงไหน คำอย่าง iPhone หรือ eBay จะถูกตัดตรงตัวพิมพ์ใหญ่ และตัวย่ออย่าง HTTPServer ต้องดูสักครู่ว่าออกมาตรงตามที่คุณตั้งใจ
คัดลอก
กดปุ่มคัดลอกแล้ววางผลลัพธ์ในที่ที่คุณต้องการ สำหรับรูปแบบอื่นของบรรทัดเดียวกัน ดูด้านล่าง
การใช้ snake_case ทั้งโปรเจกต์
หนึ่งธรรมเนียมสำหรับทั้งสแตก
โปรเจกต์ที่ผสมรูปแบบการตั้งชื่ออ่านยากกว่าโปรเจกต์ที่ดูไม่สวยนักแต่สม่ำเสมอ หากฐานข้อมูลใช้ snake_case โค้ดที่คุยกับมันมักใช้เหมือนกัน และไฟล์ที่เคลื่อนย้ายระหว่างทั้งสองก็ตามกันไป เมื่อคุณแปลงข้อความเป็น snake_case สำหรับคอลัมน์ใหม่หรือฟิลด์ใหม่ คุณกำลังเลือกชื่อที่ทุกชั้นอื่นต้องอยู่ร่วมด้วย ดังนั้นให้เลือกครั้งเดียวแล้วใช้ต่อไปให้ตลอด
การย้ายชื่อระหว่างธรรมเนียม
ไม่ช้าก็เร็วชื่อจากธรรมเนียมหนึ่งต้องปรากฏในอีกธรรมเนียมหนึ่ง คอลัมน์ฐานข้อมูล customer_first_name กลายเป็น customerFirstName ในออบเจกต์ JavaScript และ customer-first-name ในคลาส CSS หรือ URL แทนที่จะพิมพ์ใหม่ทีละชื่อด้วยมือ ให้วางชื่อต้นฉบับในหน้าที่สร้างรูปแบบที่คุณต้องการ: camelCase สำหรับโค้ดในตระกูลภาษา C และ JavaScript และ kebab-case สำหรับสไตล์และที่อยู่ ทั้งสามรูปแบบของชื่อเดียวกันเป็นการแปลที่ตรงกันของกันและกัน และตัวแปลงทำให้ได้อย่างสม่ำเสมอ
ไฟล์การตั้งค่า
ไฟล์การตั้งค่ามักใช้คีย์แบบ snake_case โดยเฉพาะใน YAML ที่เครื่องมือจำนวนมากใช้ เมื่อคุณเตรียมไฟล์ดังกล่าวจากข้อมูลที่เก็บเป็น JSON แปลง JSON เป็น YAML จะคงคีย์ไว้ตามที่คุณเขียน และ แปลง YAML เป็น JSON ทำในทางกลับกัน ให้ตกลงใช้ snake_case สำหรับคีย์ก่อนเริ่ม แล้วการแปลงระหว่างรูปแบบจะไม่รบกวนคีย์เหล่านั้น
การเปลี่ยนชื่อจำนวนมาก
หากคุณรับช่วงต่อไฟล์ข้อมูลที่หัวคอลัมน์ผสมหลายสไตล์ ให้แปลงแต่ละหัวด้วยหน้านี้และแทนที่ทั้งหมดในครั้งเดียว ทดสอบกับตัวอย่างเล็ก ๆ ก่อน เพราะสคริปต์ที่อ่านไฟล์ด้วยหัวคอลัมน์จะพังหากชื่อเปลี่ยนเพียงบางที่ เก็บรายการชื่อเก่าและชื่อใหม่ไว้ข้างไฟล์ เพื่อให้เพื่อนร่วมงานเห็นว่าอะไรเปลี่ยนไป
การเขียนชื่อที่อยู่ได้นาน
บอกว่าสิ่งนั้นคืออะไร ไม่ใช่เก็บอย่างไร
ชื่อที่ดีอธิบายเนื้อหา order_total บอกว่าตัวเลขหมายถึงอะไร col7 ไม่บอก เมื่อคุณแปลงข้อความเป็น snake_case ให้แน่ใจว่าวลีที่คุณเริ่มต้นเป็นวลีที่ชัดเจนที่สุดที่คุณเขียนได้ เพราะตัวแปลงจะคงความชัดเจนหรือความสับสนของมันไว้อย่างซื่อสัตย์
หลีกเลี่ยงตัวย่อที่มีแต่คุณเข้าใจ
ชื่ออย่าง cust_fn_dt เป็นปริศนาสำหรับคนอื่น และสำหรับตัวคุณเองในอีกหกเดือน ขีดล่างราคาถูก และคำเพิ่มก็เช่นกัน ชื่อที่ยาวกว่าซึ่งอ่านเหมือนประโยคเป็นของขวัญที่ดีกว่าสำหรับคนถัดไป เมื่อเทียบกับชื่อสั้นที่ต้องมีคำอธิบายประกอบ
ใช้เอกพจน์และพหูพจน์ให้สม่ำเสมอ
ตัดสินใจว่าจะตั้งชื่อตารางเป็นเอกพจน์ customer หรือพหูพจน์ customers และยึดตามนั้น ธรรมเนียมสำคัญน้อยกว่าความสม่ำเสมอ วลีที่เปลี่ยนเป็น snake_case คงจำนวนที่คุณให้ไว้
ใส่คำนำหน้าเมื่อมีประโยชน์
ในสคีมาขนาดใหญ่ คำนำหน้าสั้น ๆ จัดกลุ่มชื่อที่เกี่ยวข้อง: billing_address, billing_city, billing_country การพิมพ์วลีพร้อมคำนำหน้าแล้วแปลงให้ผลลัพธ์ที่สม่ำเสมอ และรายการเรียงตามตัวอักษรก็จัดกลุ่มตัวเอง
ทดสอบชื่อก่อนผูกมัดกับมัน
ก่อนที่ชื่อจะเข้าไปในสคีมาหรือ API ให้ลองใช้ในที่ที่มันจะปรากฏ: คำสั่งค้นหา ตัวแปร รายการไฟล์ หากอ่านเป็นธรรมชาติทั้งสามที่ ก็ใช้ได้ หากรู้สึกขัด ให้ทำวลีให้สั้นลงหรือเรียบเรียงใหม่แล้วแปลงข้อความเป็น snake_case อีกครั้ง การทดสอบหนึ่งนาทีตอนเริ่มต้นช่วยให้ไม่ต้องเปลี่ยนชื่อข้ามหลายร้อยไฟล์ในภายหลัง
บรรทัดเดียวกันในเจ็ดรูปแบบการเขียน
ตารางรูปแบบ
ใต้ตัวแปลงมีตารางแสดงบรรทัดตัวอย่างในทั้งเจ็ดรูปแบบที่เว็บไซต์มี: ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก Title Case, snake_case, kebab-case, camelCase และ URL slug เป็นวิธีที่รวดเร็วในการดูว่าคำเดียวกันเมื่อเขียนแต่ละแบบเป็นอย่างไร
รูปแบบเหล่านี้มาจากไหน
สองตัวอักษร
ตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเคยเป็นอักษรสองชุดที่ต่างกัน ตัวพิมพ์ใหญ่เป็นแบบโรมัน แกะลงหินด้วยสิ่ว ส่วนตัวพิมพ์เล็กสืบมาจากตัวเล็กแบบคาโรลิงเจียน เกิดจากปากกาที่เคลื่อนเร็วบนแผ่นหนัง ช่างพิมพ์เก็บสองชุดไว้ในถาดแยกกัน คือถาดบนและถาดล่าง (upper case และ lower case) และชื่อเหล่านั้นติดมานานหลังจากถาดหายไปแล้ว
ชื่อที่ไม่มีช่องว่าง
รูปแบบสำหรับโปรแกรมเมอร์อายุน้อยกว่ามาก และถูกคิดขึ้นเพื่อแก้ปัญหาเดียว: ชื่อไม่สามารถมีช่องว่างได้ snake_case มาจาก C ยุคแรก camelCase มาจาก Smalltalk kebab-case มาจาก Lisp และ URL slug มาจากความจำเป็นที่ต้องใส่ชื่อเรื่องของมนุษย์ลงในที่อยู่ที่ไม่อนุญาตให้มีช่องว่างและเครื่องหมายเน้นเสียง ขีดล่างเป็นอักขระที่สะดวกบนคีย์บอร์ดสมัยนั้น และมันดูเหมือนช่องว่างที่วางอยู่บนเส้นบรรทัด
กับดักเมื่อคุณแปลงข้อความเป็น snake_case
ขึ้นต้นชื่อด้วยตัวเลข
ภาษาและฐานข้อมูลส่วนใหญ่ปฏิเสธชื่อที่ขึ้นต้นด้วยตัวเลข ให้เพิ่มตัวอักษรหรือคำไว้ข้างหน้าหากวลีขึ้นต้นด้วยตัวเลข
คาดหวังว่าคำสงวนจะถูกจัดการ
วลีอย่าง class หรือ order อาจเป็นคำสงวนในภาษาของคุณหรือใน SQL หน้านี้ไม่รู้ และคุณต้องตรวจสอบเอง
ตัวย่อ
ตัวย่อภายในชื่อแบบ camelCase เช่น parseHTMLString อาจถูกตัดเป็น parse_h_t_m_l_string หรือ parse_html_string ขึ้นอยู่กับกฎ ตรวจดูว่าผลลัพธ์เป็นอย่างที่คุณต้องการ
ชื่อที่ยาวมาก
ฐานข้อมูลและระบบไฟล์กำหนดข้อจำกัดความยาว วลียาวที่เปลี่ยนเป็นชื่ออาจชนข้อจำกัดนั้น ให้ย่อถ้อยคำก่อนแปลง
คำถามที่คนมักถามก่อนแปลง
เครื่องหมายวรรคตอนเป็นอย่างไร
ถือเป็นขอบเขตระหว่างคำและไม่ถูกคงไว้
ตัวเลขถูกเก็บไว้หรือไม่
ใช่ เป็นคำของตัวเอง คั่นด้วยขีดล่าง
รองรับข้อมูลเข้าแบบ camelCase หรือไม่
ได้ ตัวพิมพ์ใหญ่ภายในคำเป็นจุดตัด ดังนั้น fooBar จึงกลายเป็น foo_bar
ใช้กับภาษาอื่นได้หรือไม่
ได้ ตามกฎของภาษาของหน้านี้ อักษรที่ไม่มีช่องว่าง เช่น ภาษาจีนและภาษาญี่ปุ่น จะกลับมาเป็นคำเดียว
ข้อความของฉันถูกอัปโหลดหรือไม่
ไม่ สิ่งที่คุณพิมพ์ที่นี่ไม่ถูกส่งไปที่ใด ดังนั้นร่างเอกสาร รหัสผ่าน หรือชื่อลูกค้าจึงปลอดภัยที่นี่เท่ากับในโปรแกรมแก้ไขข้อความ
ฉันจะได้ขีดกลางแทนได้อย่างไร
ด้วย แปลงข้อความเป็น kebab-case
ตัวอย่างที่ใช้งานจริง
สมมติว่าคุณกำลังสร้างฐานข้อมูลเล็ก ๆ สำหรับห้องสมุด และเจ้าหน้าที่ส่งชื่อคอลัมน์จากสเปรดชีตของพวกเขามาให้: Book Title, Author's Last Name, Year Published (YYYY), ISBN-13 คุณแปลงทีละชื่อและอ่านได้ book_title, author_s_last_name, year_published_yyyy และ isbn_13 เครื่องหมายอะพอสทรอฟีทำให้คอลัมน์ผู้เขียนดูไม่เรียบร้อย คุณจึงย่อต้นฉบับเป็น Author Last Name แล้วแปลงอีกครั้ง: author_last_name คอลัมน์ปีชัดเจนกว่าเมื่อไม่มีหมายเหตุรูปแบบ คุณจึงเก็บ year_published ไว้ ได้ชื่อคอลัมน์ที่เป็นระเบียบสี่ชื่อ เขียนเสร็จในหนึ่งนาที และแต่ละชื่อเป็นชื่อที่ฐานข้อมูลจะยอมรับ
รายการตรวจสอบสั้น ๆ
ก่อนแปลง
เขียนวลีด้วยคำธรรมดา โดยไม่มีหมายเหตุในวงเล็บ ตรวจว่าปลายทางรับขีดล่างและเครื่องหมายเน้นเสียง
ขณะแปลง
วางวลี ดูจุดที่ตัด และตรวจให้แน่ใจว่าชื่อขึ้นต้นด้วยตัวอักษร
หลังแปลง
ตรวจความยาว ตรวจกับคำสงวน และเก็บบันทึกวลีต้นฉบับไว้ เพื่อให้ย้อนจากชื่อไปหาความหมายได้
ข้อผิดพลาดที่พบบ่อย
ใช้ snake_case กับข้อความที่ผู้คนจะอ่าน
มันมีไว้สำหรับชื่อ ไม่ใช่เนื้อความ
ลืมว่าปลายทางอนุญาตอะไร
ตัวเลขตอนต้น เครื่องหมายเน้นเสียง และข้อจำกัดความยาวต่างกันไปในแต่ละระบบ
แปลงตัวย่อโดยไม่ดู
ตรวจจุดที่ตัดรอบ ๆ ตัวย่อ
ข้อความของคุณอยู่บนอุปกรณ์ของคุณ
การแปลงเกิดขึ้นในเครื่อง ข้อความของคุณถูกจัดการโดยเบราว์เซอร์ของคุณเอง และไม่มีอะไรถูกส่งไปที่ใด ไม่มีอะไรต้องลบหลังจากนั้นและไม่ต้องสร้างบัญชี นี่คือวิธีง่าย ๆ ในการแปลงข้อความเป็น snake_case
สรุป
หากต้องการแปลงข้อความเป็น snake_case ที่นี่ ให้วางหนึ่งบรรทัดแล้วอ่านผลลัพธ์ที่คำถูกตัด แปลงเป็นตัวพิมพ์เล็ก และเชื่อมด้วยขีดล่าง บรรทัดที่เขียนเป็น camelCase อยู่แล้วก็ถูกตัดตรงนั้นด้วย ดังนั้น fooBar จึงกลายเป็น foo_bar หน้านี้ไม่เก็บเครื่องหมายวรรคตอน: เครื่องหมายจุลภาค จุด และขีดคือขอบเขตระหว่างคำ ไม่ใช่อักขระที่ต้องคงไว้ ซึ่งเป็นสิ่งที่คุณต้องการสำหรับชื่อไฟล์หรือคอลัมน์ฐานข้อมูล แต่ไม่ใช่สำหรับเนื้อความ การตัดเป็นคำต้องมีขอบเขต ภาษาจีนและภาษาญี่ปุ่นที่เขียนโดยไม่เว้นวรรคจึงกลับมาเป็นคำเดียว การแปลงเป็นตัวพิมพ์เล็กเป็นไปตามภาษาของหน้านี้ ไม่มีอะไรถูกอัปโหลด