點大小寫轉換器
將任何短語轉換為 dot.case — 全部小寫,單字由點連接。常見於配置鍵、命名空間標識符和 i18n 翻譯鍵。
User Profile Background Color → user.profile.background.color
將任何短語轉換為 dot.case — 全部小寫,單字由點連接。常見於配置鍵、命名空間標識符和 i18n 翻譯鍵。
User Profile Background Color → user.profile.background.color
dot.case 是一種命名約定,其中單字以小寫形式書寫並透過點連接。它大量用於分層配置鍵、國際化翻譯鍵以及點傳達邏輯分組的任何上下文。
不像 蛇箱 或 kebab-case, dot.case 中的點通常帶有語義意義——它們表示命名空間或層次結構邊界,而不僅僅是單詞分隔符。
nav.home.label, checkout.cart.empty.message, errors.validation.email。翻譯函式庫(i18next、vue-i18n、react-intl)使用點分隔鍵來導覽巢狀翻譯物件。
Spring Boot 的 application.properties、log4j config 和許多舊的 Unix 工具使用 dot.case 進行分層配置: spring.datasource.url, logging.level.root.
RBAC 和 ABAC 系統通常將權限編碼為 dot.case 字串: user.read, billing.invoice.write, admin.users.delete。這些點使層次結構變得明顯。
Mixpanel、Segment 和類似的分析工具通常使用 dot.case 事件名稱: user.signed_up, checkout.completed, video.playback.started.
反向 DNS 套件命名使用 dot.case: com.example.app, org.apache.commons。 Java、Android 和 macOS 套件識別碼都依賴此約定。
dot.case 轉換器透過對輸入字串套用兩級轉換來運作。首先,它使用完整的 Unicode 大小寫折疊(不僅僅是 ASCII)來小寫所有字母字符,從而處理重音字母(例如, É → é)。其次,它將每個空白字元序列(空格、製表符、換行符)替換為單一點(.)。除空格之外的非字母數字字元將保留在其原始位置,這表示標點符號、數字和符號保持不變。該演算法確實 不 嘗試分割駝峯命名法或帕斯卡命名法;它僅對空格分隔的標記進行操作。這確保了確定性、可預測的輸出:結果始終是由點連接的小寫標記串聯而成,不會對首字母縮略詞或數字進行靜默修改。
以下是該工具與其他兩種生成 dot.case 的常見方法的比較。
| 這個工具 | sed命令 | Python 單行程式碼 | |
|---|---|---|---|
| 小寫處理 | 完整的 Unicode 大小寫摺疊 | tr '[:upper:]' '[:lower:]' (僅限 ASCII,除非設定了區域設定) | str.lower()(完整 Unicode) |
| 減少空白 | 用單點替換任何空白序列 | 需要兩次替換:s/[[:space:]]+/./g 和 s/^\.//; s/\.$// | re.sub(r'\s+', '.', s).strip('.') |
| 保留非空白 | 所有非空白字元保持不變 | 相同,但要小心正規表示式轉義 | 相同,使用 re.sub 模式 |
dot.case 約定自然地從使用點表示法進行物件屬性存取的早期程式語言(例如 JavaScript、Python)出現。它對配置鍵的採用因 Django (settings.py) 和 Ruby on Rails(YAML 語言環境檔案)等框架而流行。沒有單一的發明家;相反,它發展成為一種人類可讀的方式,以純文字表示分層命名空間,避免某些檔案系統和解析器中下劃線或連字符的歧義。
它們通常可以互換用於分層路徑。點對於程式碼內標識符和配置鍵更常見;斜線對於檔案系統路徑和 URL 段更為常見。根據上下文進行選擇,而不是非此即彼。
是的 - 大多數語言使用點來存取屬性(obj.prop),所以 dot.case 適用於字串,而不是識別符。將其用作字串變數的值,而不是用作變數名稱本身。
轉換器將它們剝離。 “.用户名。”變為“用户名”。如果您需要相對路徑或隱藏檔案約定的前導點,請手動將其新增回。
可能但不尋常 - 大多數作業系統將最後一個點視為擴展分隔符,因此 my.config.file.json 被解釋為名為的 JSON 文件 my.config.file。使用短橫線作為檔案名,除非您的工具明確需要點。