ToolDeck

تبدیل‌کننده بزرگی حروف

تبدیل متن بین حروف بزرگ، کوچک، عنوان، camelCase، snake_case و بیشتر

یک مثال امتحان کنید

ورودی

خروجی

به‌صورت محلی اجرا می‌شود · جای‌گذاری اسرار امن است
متن تبدیل‌شده در اینجا نمایش داده می‌شود…

تبدیل بزرگی حروف متن چیست؟

تبدیل بزرگی حروف متن فرآیند تغییر الگوی نوشتاری یا جداسازی کلمات در یک رشته است. یک تبدیل‌کننده بزرگی حروف ورودی‌هایی مثل «hello world» را دریافت می‌کند و آن را به UPPERCASE، lowercase، Title Case، camelCase، snake_case، kebab-case یا قراردادهای دیگر تبدیل می‌کند. این تبدیل برای متن ASCII ساده مستقیم است، اما در موارد خاصی مثل مخفف‌ها («XMLParser»)، قواعد منطقه‌ای (حرف I نقطه‌دار در ترکی) و رشته‌های چندخطی پیچیده‌تر می‌شود.

زبان‌های برنامه‌نویسی، سیستم‌های فایل و راهنماهای سبک هر کدام قراردادهای نام‌گذاری خاص خود را اعمال می‌کنند. متغیرهای JavaScript معمولاً از camelCase استفاده می‌کنند. توابع و متغیرهای Python طبق PEP 8 از snake_case پیروی می‌کنند. نام کلاس‌های CSS از kebab-case استفاده می‌کنند. ستون‌های پایگاه داده بسته به تیم متفاوت است، اما snake_case در PostgreSQL و MySQL غالب است. جابه‌جایی دستی بین این قراردادها کند و مستعد خطا است، به‌خصوص هنگام تغییر نام در ده‌ها فایل.

قراردادهای بزرگی حروف در خارج از کد نیز اهمیت دارند. Title Case قوانینی دارد که توسط راهنماهای سبک مثل Chicago Manual of Style و APA تعریف شده‌اند، که در آن‌ها حروف اضافه و حروف ربط کوتاه حروف کوچک می‌مانند مگر اینکه اول جمله باشند. Sentence case تنها اولین کلمه و اسامی خاص را با حرف بزرگ می‌نویسد. نشر آمریکایی برای عنوان‌ها از Title Case به‌عنوان پیش‌فرض استفاده می‌کند؛ اکثر مستندات اروپایی و فنی از Sentence case استفاده می‌کنند.

چرا از این تبدیل‌کننده استفاده کنیم؟

هر متنی را وارد کنید و فوراً آن را به نه قالب مختلف تبدیل کنید، بدون نصب افزونه VS Code یا نوشتن اسکریپت یک‌بار مصرف.

تبدیل فوری
یک قالب بزرگی حروف انتخاب کنید و نتیجه را بلافاصله ببینید. بدون ارسال درخواست به سرور، بدون انتظار. بین قالب‌ها جابه‌جا شوید تا خروجی را کنار هم مقایسه کنید.
🔒
پردازش حریم‌خصوصی‌محور
تمام تبدیل‌ها با JavaScript در مرورگر شما اجرا می‌شوند. متن شما روی دستگاهتان باقی می‌ماند. هیچ چیزی به سرور ارسال یا در جایی ذخیره نمی‌شود.
🔄
نه قالب در یک ابزار
UPPERCASE، lowercase، Title Case، Sentence case، camelCase، PascalCase، snake_case، kebab-case و CONSTANT_CASE. یک ورودی تمام قراردادهای رایج را پوشش می‌دهد.
🌍
بدون نیاز به حساب کاربری
صفحه را باز کنید و شروع به تبدیل کنید. بدون ثبت‌نام، بدون افزونه مرورگر، بدون نصب روی دسکتاپ. روی هر دستگاهی با مرورگر مدرن کار می‌کند.

موارد استفاده تبدیل‌کننده بزرگی حروف

توسعه فرانت‌اند
نام prop های کامپوننت را از پاسخ‌های API با قالب snake_case به camelCase برای آبجکت‌های JavaScript تبدیل کنید. نام کلاس‌های CSS را هنگام مهاجرت به سیستم نام‌گذاری BEM یا utility-first از camelCase به kebab-case تغییر دهید.
طراحی API بک‌اند
نام فیلدها را هنگام نگاشت ستون‌های پایگاه داده (snake_case) به کلیدهای پاسخ JSON (camelCase) بین قراردادها ترجمه کنید. تأیید کنید که لایه‌های سریال‌سازی قالب خروجی مورد انتظار را تولید می‌کنند.
DevOps و زیرساخت
نام متغیرهای محیطی با قالب CONSTANT_CASE را از عبارات توصیفی تولید کنید. نام منابع Terraform را هنگام رعایت راهنماهای سبک تیم بین snake_case و kebab-case تبدیل کنید.
کنترل کیفیت و خودکارسازی آزمون
داده‌های fixture آزمون را با نام فیلدهای دارای بزرگی حروف صحیح آماده کنید. عدم تطابق بزرگی حروف بین قراردادهای API و انتظارات کلاینت را قبل از رسیدن به محیط تولید شناسایی کنید.
مهندسی داده
سرستون‌ها را هنگام وارد کردن فایل‌های CSV یا Excel به پایگاه داده نرمال‌سازی کنید. سرستون‌های با قالب مختلط مثل «First Name» را به ستون‌های snake_case مثل «first_name» برای طراحی طرح‌واره یکپارچه تبدیل کنید.
نوشتار فنی و مستندسازی
ارجاعات کد در مستندات را با بزرگی حروف صحیح قالب‌بندی کنید. توضیحات به زبان ساده را به نام کلاس‌های PascalCase یا slug های URL به‌صورت kebab-case برای یکپارچگی در مشخصات فنی تبدیل کنید.

مرجع قراردادهای بزرگی حروف

هر قرارداد نام‌گذاری قواعد خاصی برای نوشتن با حرف بزرگ و جداسازی کلمات دارد. جدول زیر تمام نه قالبی که این ابزار پشتیبانی می‌کند را با عبارت ورودی «the quick brown fox» به‌عنوان مرجع نشان می‌دهد.

قالبقانونمثال
UPPERCASEEvery letter capitalizedTHE QUICK BROWN FOX
lowercaseEvery letter lowercasedthe quick brown fox
Title CaseFirst letter of each word capitalizedThe Quick Brown Fox
Sentence caseFirst letter of each sentence capitalizedThe quick brown fox
camelCaseNo separators, first word lowercasetheQuickBrownFox
PascalCaseNo separators, every word capitalizedTheQuickBrownFox
snake_caseWords joined by underscores, all lowercasethe_quick_brown_fox
kebab-caseWords joined by hyphens, all lowercasethe-quick-brown-fox
CONSTANT_CASEWords joined by underscores, all uppercaseTHE_QUICK_BROWN_FOX

camelCase در برابر snake_case در برابر kebab-case

این سه قرارداد در توسعه نرم‌افزار غالب هستند، اما هر کدام به اکوسیستم متفاوتی تعلق دارند. انتخاب نادرست، linter ها را خراب می‌کند، قراردادهای API را نقض می‌کند یا پایگاه‌های کد ناسازگار ایجاد می‌کند.

camelCase
استاندارد برای متغیرها، نام توابع و کلیدهای آبجکت در JavaScript و TypeScript. Java و C# از آن برای متغیرهای محلی و پارامترهای متد استفاده می‌کنند. APIهای JSON ساخته‌شده برای کلاینت‌های JavaScript معمولاً از کلیدهای camelCase استفاده می‌کنند. اولین کلمه کوچک است؛ هر کلمه بعدی با حرف بزرگ شروع می‌شود.
snake_case
پیش‌فرض برای Python (PEP 8)، Ruby، Rust و اکثر پایگاه‌های داده SQL. توابع کتابخانه استاندارد C نیز از این الگو پیروی می‌کنند. کلمات با زیرخط جدا می‌شوند، همه حروف کوچک. CONSTANT_CASE (همه حروف بزرگ با زیرخط) نوع متفاوتی است که برای ثوابت و متغیرهای محیطی استفاده می‌شود.
kebab-case
استاندارد برای نام کلاس‌های CSS، ویژگی‌های HTML، slug های URL و نام flag های CLI (--output-dir). در Lisp و Clojure رایج است. کلمات با خط‌تیره جدا می‌شوند، همه حروف کوچک. اکثر زبان‌های برنامه‌نویسی نمی‌توانند از خط‌تیره در شناسه‌ها استفاده کنند، بنابراین kebab-case به رشته‌ها، نام فایل‌ها و markup محدود می‌شود.

نمونه‌های کد

نحوه تبدیل بین قراردادهای بزرگی حروف به‌صورت برنامه‌نویسی. هر مثال رایج‌ترین تبدیل‌ها را پوشش می‌دهد: camelCase به snake_case، snake_case به camelCase، و تبدیل‌های پایه حروف بزرگ/کوچک/عنوان.

JavaScript
// camelCase → snake_case
function toSnakeCase(str) {
  return str
    .replace(/([a-z])([A-Z])/g, '$1_$2')
    .replace(/[\s-]+/g, '_')
    .toLowerCase()
}
toSnakeCase('myVariableName')  // → "my_variable_name"
toSnakeCase('kebab-case-str')  // → "kebab_case_str"

// snake_case → camelCase
function toCamelCase(str) {
  return str
    .toLowerCase()
    .replace(/[_-](\w)/g, (_, c) => c.toUpperCase())
}
toCamelCase('my_variable_name')  // → "myVariableName"

// Title Case
function toTitleCase(str) {
  return str.replace(/\w\S*/g, w =>
    w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()
  )
}
toTitleCase('the quick brown fox')  // → "The Quick Brown Fox"
Python
import re

text = "the quick brown fox"

# UPPERCASE / lowercase
text.upper()  # → "THE QUICK BROWN FOX"
text.lower()  # → "the quick brown fox"

# Title Case
text.title()  # → "The Quick Brown Fox"

# camelCase
def to_camel(s):
    words = re.split(r'[\s_-]+', s)
    return words[0].lower() + ''.join(w.capitalize() for w in words[1:])

to_camel("my_variable_name")  # → "myVariableName"

# snake_case from camelCase
def to_snake(s):
    return re.sub(r'([a-z])([A-Z])', r'\1_\2', s).lower()

to_snake("myVariableName")  # → "my_variable_name"

# kebab-case
def to_kebab(s):
    return re.sub(r'([a-z])([A-Z])', r'\1-\2', s).replace('_', '-').lower()

to_kebab("myVariableName")  # → "my-variable-name"
Go
package main

import (
	"fmt"
	"regexp"
	"strings"
)

// camelCase → snake_case
func toSnake(s string) string {
	re := regexp.MustCompile("([a-z])([A-Z])")
	snake := re.ReplaceAllString(s, "${1}_${2}")
	return strings.ToLower(snake)
}

// snake_case → camelCase
func toCamel(s string) string {
	parts := strings.Split(strings.ToLower(s), "_")
	for i := 1; i < len(parts); i++ {
		parts[i] = strings.Title(parts[i])
	}
	return strings.Join(parts, "")
}

func main() {
	fmt.Println(toSnake("myVariableName"))  // → my_variable_name
	fmt.Println(toCamel("my_variable_name")) // → myVariableName
	fmt.Println(strings.ToUpper("hello"))    // → HELLO
	fmt.Println(strings.ToUpper("hello world")) // → HELLO WORLD
}
CLI (bash / sed)
# UPPERCASE
echo "hello world" | tr '[:lower:]' '[:upper:]'
# → HELLO WORLD

# lowercase
echo "HELLO WORLD" | tr '[:upper:]' '[:lower:]'
# → hello world

# camelCase → snake_case (using sed)
echo "myVariableName" | sed 's/\([a-z]\)\([A-Z]\)/\1_\2/g' | tr '[:upper:]' '[:lower:]'
# → my_variable_name

# snake_case → kebab-case
echo "my_variable_name" | tr '_' '-'
# → my-variable-name

سوالات متداول

تفاوت camelCase و PascalCase چیست؟
camelCase با حرف کوچک شروع می‌شود (myVariable)، در حالی که PascalCase با حرف بزرگ شروع می‌شود (MyVariable). در JavaScript، camelCase برای متغیرها و توابع استفاده می‌شود؛ PascalCase برای نام کلاس‌ها و نام کامپوننت‌های React استفاده می‌شود. C# از PascalCase برای متدها و property های عمومی استفاده می‌کند. تنها تفاوت ساختاری در اولین کاراکتر است.
چگونه camelCase را در JavaScript به snake_case تبدیل کنم؟
با استفاده از یک regex قبل از هر حرف بزرگ یک زیرخط وارد کنید، سپس نتیجه را به حروف کوچک تبدیل کنید: str.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase(). این روش camelCase استاندارد را مدیریت می‌کند. برای رشته‌هایی با حروف بزرگ متوالی مثل «XMLParser»، به یک پاس regex اضافی نیاز دارید تا دنباله‌های حروف بزرگ را به‌درستی تقسیم کنید.
چرا Python از snake_case به‌جای camelCase استفاده می‌کند؟
PEP 8، راهنمای سبک رسمی Python که در سال 2001 منتشر شد، snake_case را برای توابع و متغیرها انتخاب کرد زیرا Guido van Rossum و تیم اصلی آن را در نگاه اول خواناتر می‌دانستند. مطالعاتی مثل پژوهش Binkley و همکاران (2009) نشان داد که شناسه‌های snake_case در برخی وظایف خواندن توسط برنامه‌نویسان سریع‌تر شناخته می‌شوند. این قرارداد توسط linter هایی مثل flake8 و pylint اجرا می‌شود.
آیا Title Case همان نوشتن هر کلمه با حرف بزرگ است؟
Title Case ساده اولین حرف هر کلمه را بزرگ می‌کند و همین کاری است که این ابزار انجام می‌دهد. Title Case رسمی (AP، Chicago، APA) قواعد اضافی دارد: حروف اضافه (a، an، the)، حروف ربط کوتاه (and، but، or) و حروف اضافه کوتاه (in، on، at) حروف کوچک می‌مانند مگر اینکه اول یا آخر جمله باشند. Title Case رسمی نیاز به جستجو در فرهنگ لغت دارد، نه صرفاً تبدیل در سطح کاراکتر.
آیا این ابزار Unicode و خطوط غیر-لاتین را مدیریت می‌کند؟
این ابزار از متدهای داخلی JavaScript یعنی toUpperCase() و toLowerCase() استفاده می‌کند که از قواعد بزرگی حروف Unicode تعریف‌شده در استاندارد Unicode (فصل 3، بخش 3.13) پیروی می‌کنند. این قواعد کاراکترهای دارای علامت (e به É)، eszett آلمانی (ss به SS) و حروف یونانی را به‌درستی مدیریت می‌کند. با این حال، قواعد منطقه‌ای مثل بزرگی حروف ترکی (که در آن i کوچک باید به İ با نقطه تبدیل شود، نه I) به تنظیمات منطقه‌ای مرورگر وابسته است، نه به ابزار.
CONSTANT_CASE برای چه استفاده می‌شود؟
CONSTANT_CASE (که SCREAMING_SNAKE_CASE هم نامیده می‌شود) برای ثوابت و متغیرهای محیطی استفاده می‌شود. در JavaScript: const MAX_RETRIES = 3. در Python: MAX_RETRIES = 3 (طبق قرارداد، چون Python ثابت واقعی ندارد). در اسکریپت‌های shell: export DATABASE_URL=.... سبک تمام‌کلان نشان می‌دهد که یک مقدار پس از مقداردهی اولیه نباید تغییر کند.
چگونه قرارداد بزرگی حروف مناسب را برای پروژه‌ام انتخاب کنم؟
از قرارداد غالب برای زبان و چارچوب خود پیروی کنید. JavaScript/TypeScript: camelCase برای متغیرها، PascalCase برای کلاس‌ها و کامپوننت‌ها. Python: snake_case برای توابع و متغیرها، PascalCase برای کلاس‌ها. CSS: kebab-case. SQL: snake_case برای ستون‌ها و جداول. کلیدهای JSON در REST API: با زبان فرانت‌اند خود هماهنگ کنید (camelCase برای کلاینت‌های JS، snake_case برای کلاینت‌های Python). در صورت شک، تنظیمات linter یا .editorconfig در ریشه پروژه را بررسی کنید.