admin 管理员组文章数量: 1087652
JS 实现:驼峰式转下横线,下横线转驼峰式
方法一:正则表达式 (推荐)
驼峰式转下横线:
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_line
本文标签: JS 实现驼峰式转下横线,下横线转驼峰式
版权声明:本文标题:JS 实现:驼峰式转下横线,下横线转驼峰式 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1700299907a386389.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论