一、下劃線轉駝峰函數
下劃線轉駝峰函數是編程中比較常用的一個函數,使用這個函數能夠很方便地將下劃線分割的字元串轉換為駝峰形式。下面是一個簡單的js下劃線轉駝峰函數。
function toCamelCase(str){ return str.replace(/_[a-z]/g,function(s){ return s.substring(1).toUpperCase(); }); }
使用該函數將”underscore_to_camel”轉換為”underscoreToCamel”.
這個函數的實現方法是使用正則表達式匹配下劃線加小寫字母形式,然後通過回調函數返回一個大寫的字母,最終將字元串中的下劃線替換掉。
二、下劃線轉駝峰註解
在注釋中使用下劃線分割單詞比較常見,例如HTML中的數據屬性”data_name”,但是在JS中,使用駝峰形式”DataName”更為普遍。在通過註解的方式獲取數據時,需要將下劃線轉換為駝峰形式才能正確獲取數據。
例如,使用jQuery的data方法獲取”data_name”屬性的方式如下:
var dataName = $(element).data("name");
在傳統JS中通過getAttribute的方式會更為麻煩,需要使用到步驟一中提到的下劃線轉駝峰函數。
在React框架中,註解的方式獲取數據比較常見,數據屬性需要使用駝峰形式,否則會報錯。
三、JS下劃線轉駝峰
JS中的下劃線轉駝峰涉及到的場景比較多,例如從伺服器返回的JSON數據、從資料庫中讀取的數據、通過註解方式獲取的數據等等。下面是一個將JSON數據中所有的下劃線轉換為駝峰形式的函數。
function underlineToCamel(obj){ if(obj instanceof Array){ for(var i in obj){ obj[i] = underlineToCamel(obj[i]); } }else if(obj instanceof Object){ for(var i in obj){ var camelKey = toCamelCase(i); obj[camelKey] = underlineToCamel(obj[i]); if(camelKey != i){ delete obj[i]; } } } return obj; }
該函數接收一個對象作為參數,如果對象是數組,則循環遞歸調用underlineToCamel函數,如果對象是一個普通對象,則將key值通過下劃線轉駝峰函數轉換成駝峰形式,然後重新設置對象的key值,刪除原來的key值。
四、駝峰命名轉下劃線
如果需要將駝峰命名方式轉換為下劃線分割的方式,JS中需要使用正則表達式進行匹配替換。下面是一個簡單的字元串駝峰轉下劃線的函數。
function toUnderScore(str){ return str.replace(/([A-Z])/g,"_$1").toLowerCase(); }
該函數使用正則表達式匹配大寫字母,並在其前面添加下劃線,然後使用toLowerCase將整個字元串轉換為小寫形式。
五、字元串駝峰轉下劃線
在CSS中,使用下劃線連接單詞比較常見,例如”font-size”。但是在JS中,使用駝峰命名方式比較普遍,例如”fontSize”。當需要將字元串格式的樣式名轉換為下劃線方式時,需要使用駝峰轉下劃線的方法。
function toUnderScoreCase(str){ return str.replace(/([A-Z])/g,"_$1").toLowerCase().replace(/\-/g,"_"); }
該函數在步驟四的基礎上,增加了一步替換”-“為”_”的操作。
六、下劃線轉駝峰c
C語言中使用下劃線連接單詞的方式比較普遍,例如”print_hello_world”。如果需要將下劃線連接的名稱轉換為駝峰命名方式,在C語言中需要手動編寫轉換函數。
void underlineToCamel(char *str){ char *p; p = strchr(str,'_'); while(p != NULL){ *p = *(p+1) - 32; for(char *q = p+1;p=strchr(q,'_');q=p){ *p = *(p+1) - 32; } p = strchr(str,'_'); } }
該函數使用strchr函數查找下劃線位置,並將下一個字元轉換為大寫形式。
七、下劃線轉駝峰js
在JS中,將下劃線連接的屬性名轉換為駝峰命名方式比較常見,例如”underscore_to_camel”轉為”underscoreToCamel”。以下是一份基於正則表達式的下劃線轉駝峰JS代碼。
function toCamel(str) { var re=/(-|_)([a-z])/g; return str.replace(re ,function(match, group1, group2) { return group2.toUpperCase(); }); }
該代碼先使用正則表達式匹配下劃線和小寫字母,並在小寫字母前面插入”-“,然後通過回調函數返回一個大寫的字母,最終將字元串中的下劃線替換掉。
八、下劃線轉駝峰方法正則
當需要將一段文字中的下劃線轉換為駝峰命名方式時,可以使用正則表達式匹配下劃線加小寫字母形式。
var str = "underscore_to_camel"; var reg = /\_(\w)/g; str.replace(reg,function(match,p1){ return p1.toUpperCase(); });
上述代碼中,先使用正則表達式匹配下劃線和小寫字母,然後使用toUpperCase函數將小寫字母轉為大寫。
九、JS下劃線轉駝峰處理
在JS中,如果需要將一段字元串中的下劃線轉換為駝峰命名方式,可以使用String.prototype.split()和Array.prototype.map()方法,如下所示:
var str = "underscore_to_camel"; var newStr = str.split("_").map(function(item, index){ if(index>0){ return item.replace(item[0],item[0].toUpperCase()); }else{ return item; } }).join("");
代碼中先通過split方法將字元串分割為數組,然後使用map方法將所有單詞的首字母轉為大寫形式,最後使用join方法將數組合併為一個字元串。
十、下劃線轉駝峰工具選取
目前市面上有很多下劃線轉駝峰的工具,比如在線轉換網站、VScode插件等等。下面介紹一下我常用的VScode插件。
VScode插件名為”underscore-to-camelcase”,可以快速將下劃線轉換為駝峰命名方式。使用該插件需要選中目標文本,在快捷鍵(默認為Alt+Shift+C)後按下回車即可將下劃線轉換為駝峰命名法。
下面是該插件實現代碼:
function underscoreToCamelCase(str) { var camelCase = str.replace(/(_+\w)/g, function(match) { return match.slice(1).toUpperCase(); }); return camelCase.charAt(0).toLowerCase() + camelCase.slice(1); } module.exports = (text) => { return underscoreToCamelCase(text); };
該代碼同樣是使用正則表達式匹配下劃線加小寫字母形式,並返回一個大寫字母,最終將下劃線替換掉。
總結
在編程過程中,下劃線和駝峰命名方式都有其適用場景。我們需要根據具體情況來選擇合適的命名方式,以提高代碼的可讀性和可維護性。
原創文章,作者:TVZL,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/131378.html