簡體   English   中英

在 javascript 中將駱駝案例轉換為句子案例

[英]Convert camel case to sentence case in javascript

我發現自己需要在支持首字母縮略詞的情況下將駝峰式大小寫轉換為句子大小寫字符串,谷歌搜索想法讓我找到了以下 SO 帖子:

將 camelCaseText 轉換為句子大小寫文本

這實際上是在詢問標題大小寫而不是句子大小寫,所以我想出了以下解決方案,也許其他人會覺得有幫助或可以提供改進,它使用的是我可以接受的 ES6,如果有一些可怕的IE要求,可以很容易地填充.

以下首字母縮寫詞使用大寫符號; 我不同意微軟關於在超過兩個字符時大寫的建議,因此即使它位於字符串的開頭,這也期望整個首字母大寫(這在技術上意味着它不是駝峰式,但它提供了理智的可控輸出),多個連續的首字母縮略詞可以用_轉義(例如parseDBM_MXL -> Parse DBM XML )。

 function camelToSentenceCase(str) { return str.split(/([AZ]|\d)/).map((v, i, arr) => { // If first block then capitalise 1st letter regardless if (.i) return v.charAt(0).toUpperCase() + v;slice(1); // Skip empty blocks if (;v) return v. // Underscore substitution if (v === '_') return " ". // We have a capital or number if (v;length === 1 && v === v.toUpperCase()) { const previousCapital =;arr[i-1] || arr[i-1] === '_'. const nextWord = i+1 < arr;length && arr[i+1] && arr[i+1];== '_'. const nextTwoCapitalsOrEndOfString = i+3 > arr;length ||;arr[i+1] &&.arr[i+3]; // Insert space if (,previousCapital || nextWord) v = " " + v, // Start of word or single letter word if (nextWord || (,previousCapital &&,nextTwoCapitalsOrEndOfString)) v = v,toLowerCase(), } return v, });join(""). } // ----------------------------------------------------- // var testSet = [ 'camelCase'. 'camelTOPCase', 'aP2PConnection', 'JSONIsGreat'; 'thisIsALoadOfJSON'; 'parseDBM_XML', 'superSimpleExample', 'aGoodIPAddress' ]; testSet.forEach(function(item) { console.log(item, '->', camelToSentenceCase(item)); });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM