sellerCnt => seller_cnt
minPriceOne=> min_price_one
如题,效果是上面这样的。把大写字母变成小写,然后在大写字母前加一个_怎么封装一个函数。
自己试了几次,不够完美,做一次伸手党吧。希望过审。
sellerCnt => seller_cnt
minPriceOne=> min_price_one
如题,效果是上面这样的。把大写字母变成小写,然后在大写字母前加一个_怎么封装一个函数。
自己试了几次,不够完美,做一次伸手党吧。希望过审。
推荐使用 npm包 humps
, 其关于这种类似的转换处理方法有很多,可以参考https://www.npmjs.com/package...
下面代码是针对题主驼峰转下划线的处理程序。
function decamelize(string, options) {
options = options || {};
var separator = options.separator || '_';
var split = options.split || /(?=[A-Z])/;
return string.split(split).join(separator).toLowerCase();
};
console.log(decamelize("sellerCnt")); //seller_cnt
console.log(decamelize("minPriceOne")); //min_price_one
console.log(decamelize("sellerCnt", { separator: '-' })); // seller-cnt
console.log(decamelize("minPriceOne", { separator: '-' })); // min-price-one
一个不成熟的函数
function fn (str) {
if (!str) {
return str
}
return str.replace(/[A-Z]/g, (match) => {
return `_${match.toLowerCase()}`
})
}
formatUpper(str){
let myStr = '';
let myItem = ''
for (const item of str) {
myItem = /[A-Z]/.test(item) ? `_${item.toLowerCase()}` : item;
myStr += myItem;
}
return myStr
}
8 回答4.6k 阅读✓ 已解决
6 回答3.3k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
4 回答2.7k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决