JS實現(xiàn)駝峰字符串轉下劃線字符串的三種方法
需求如下:
將駝峰寫法的字符串轉為下劃線寫法的字符串
eg:輸入:"yiZhiXiaoKeLeYa"
輸出:"yi_zhi_xiao_ke_le_ya"
實現(xiàn)思路一:
可以使用正則表達式來實現(xiàn)駝峰字符串轉下劃線字符串:
function toUnderline(str) { return str.replace(/([A-Z])/g, '_$1').toLowerCase(); } console.log(toUnderline('yiZhiXiaoKeLeYa')); // 輸出 'yi_zhi_xiao_ke_le_ya' console.log(toUnderline('myCode')); // 輸出 'my_code'
/([A-Z])/g
是一個正則表達式,表示匹配所有大寫字母。_$1
中的 $1
表示正則表達式匹配到的第一個大寫字母,實現(xiàn)了在它前面添加下劃線的效果。最后,使用 toLowerCase()
將所有字母轉換成小寫。
實現(xiàn)思路二:
利用 String.prototype.split() 和 Array.prototype.join() 方法:
function toUnderline(str) { let result = ''; for (let i = 0; i < str.length; i++) { if (str[i] === str[i].toUpperCase()) { result += '_' + str[i].toLowerCase(); } else { result += str[i]; } } return result; } console.log(toUnderline('yiZhiXiaoKeLeYa')); // 輸出 'yi_zhi_xiao_ke_le_ya' console.log(toUnderline('myCode')); // 輸出 'my_code'
遍歷字符串中的每個字符,如果字符是大寫字母,則在其前面添加下劃線并轉化為小寫字母,否則直接拼接
實現(xiàn)思路三:
利用遞歸和 String.prototype.replace() 方法:
function toUnderline(str) { if (str.length <= 1) { return str.toLowerCase(); } let firstChar = str[0]; if (firstChar === firstChar.toUpperCase()) { firstChar = '_' + firstChar.toLowerCase(); } return firstChar + toUnderline(str.slice(1)); } console.log(toUnderline('yiZhiXiaoKeLeYa')); // 輸出 'yi_zhi_xiao_ke_le_ya' console.log(toUnderline('myCode')); // 輸出 'my_code'
將字符串從第二個字符開始傳入遞歸函數(shù)中處理,處理完成后在第一個字符前面根據大小寫添加下劃線。當字符串長度小于等于 1 時,直接轉化為小寫字母。
到此這篇關于JS實現(xiàn)駝峰字符串轉下劃線字符串的三種方法的文章就介紹到這了,更多相關JS駝峰字符串轉下劃線字符串內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
D3.js中data(), enter() 和 exit()的問題詳解
相信大多數(shù)人對D3.js并不陌生。這是一個由紐約時報可視化編輯 Mike Bostock與他斯坦福的教授和同學合作開發(fā)的數(shù)據文件處理的JavaScript Library,全稱叫做Data-Driven Documents,在d3.js中data(), enter() 和 exit()比較常見,下面給大家就這方面的知識給大家詳解2015-08-08