中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js如何實現下劃線和駝峰互相轉換

發布時間:2021-10-18 09:20:20 來源:億速云 閱讀:1246 作者:小新 欄目:開發技術

這篇文章主要介紹js如何實現下劃線和駝峰互相轉換,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

應用場景: 

有時候傳給后端的參數是駝峰命名,回顯的時候是下劃線,這個時候就需要修改key值

方法一:正則表達式 (推薦)

駝峰式轉下橫線:

function toLowerLine(str) {
 var temp = str.replace(/[A-Z]/g, function (match) { 
  return "_" + match.toLowerCase();
   });
   if(temp.slice(0,1) === '_'){ //如果首字母是大寫,執行replace時會多一個_,這里需要去掉
    temp = temp.slice(1);
   }
 return temp;
};
console.log(toLowerLine("TestToLowerLine"));  //test_to_lower_line
console.log(toLowerLine("testToLowerLine"));  //test_to_lower_line

下橫線轉駝峰式:

function toCamel(str) {
   return str.replace(/([^_])(?:_+([^_]))/g, function ($0, $1, $2) {
     return $1 + $2.toUpperCase();
   });
}
console.log(toCamel('test_to_camel')); //testToCamel

方法二:利用數組的 reduce 方法實現

駝峰式轉下橫線:

function doLowerLine(previousValue, currentValue, currentIndex, array){
 if(/[A-Z]/.test(currentValue)){
  currentValue = currentValue.toLowerCase();
  if(currentIndex===0){
   return previousValue + currentValue;
  }else{
   return previousValue + '_' + currentValue;
  }
 }else{
  return previousValue + currentValue;
 }
}
function toLowerLine(arr){
 if(typeof arr === 'string'){
  arr = arr.split('');
 }
 return arr.reduce(doLowerLine,'');
}
var a = 'TestToLowerLine';
var res1 = toLowerLine(a); //test_to_lower_line
var res2 = [].reduce.call(a,doLowerLine,''); //test_to_lower_line

下橫線轉駝峰式:

function doCamel(previousValue, currentValue, currentIndex, array){
 if(currentValue === '_'){
  return previousValue + currentValue.toUpperCase();
 }else{
  return previousValue + currentValue;
 }
}
function toCamel(str) {
 if(typeof str === 'string'){
  str = str.split(''); //轉為字符數組
 }
 return str.reduce(doCamel);
}
console.log(toCamel('test_to_camel'));    //TestToCamel

方法三:利用數組的 map 方法實現

駝峰式轉下橫線:

function doLowerLine(val, index, arr){
 if(/[A-Z]/.test(val)){
  if(index===0){
   return val.toLowerCase();
  }else{
   return '_'+val.toLowerCase();
  }
 }else{
  return val;
 }
}
function toLowerLine(arr){
 if(typeof arr === 'string'){
  return [].map.call(arr,doLowerLine).join('');
  // Array.prototype.map.call(arr, doLowerLine).join('');
 }else{
  return arr.map(doLowerLine).join('');
 }
}
var a = 'TestToLowerLine';
var res1 = [].map.call(a,doLowerLine).join('');    //test_to_lower_line
var res2 = toLowerLine(a);    //test_to_lower_lin

JS字符串的下劃線命名和駝峰命名轉換

1.駝峰轉連字符:

var s = "fooStyleCss";
s = s.replace(/([A-Z])/g,"-$1").toLowerCase();
//利用正則進行替換,簡潔明了,很棒

2.轉駝峰

var s1 = "foo-style-css";
s1 = s1.replace(//-(/w)/g, function(all, letter){
          return letter.toUpperCase();
        });
//這段2看的不是很明白

于是自己寫一個,^_^,這個很容易懂吧,就是代碼多了點;

var s = "style-sheet-base";

var a = s.split("-");
var o = a[0];
for(var i=1;i<a.length;i++){
    o = o + a[i].slice(0,1).toUpperCase() + a[i].slice(1);
}

再寫一個,這次用正則:

var s1 = "style-sheet-base";
s1 = s1.replace(//-(/w)/g, function(x){return x.slice(1).toUpperCase();});

以上是“js如何實現下劃線和駝峰互相轉換”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

js
AI

平原县| 黄石市| 文水县| 衢州市| 泸溪县| 四会市| 石狮市| 辽宁省| 平昌县| 金乡县| 长沙县| 吐鲁番市| 神农架林区| 黄梅县| 湾仔区| 麻城市| 阿瓦提县| 铁力市| 信阳市| 霍邱县| 乡城县| 黄龙县| 阿图什市| 沙河市| 黔南| 高清| 新竹县| 札达县| 沅陵县| 瑞金市| 阳谷县| 科技| 类乌齐县| 偃师市| 泽州县| 江津市| 望城县| 德令哈市| 高要市| 宜兰市| 沧州市|