-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[js] 第4天 写一个方法把下划线命名转成大驼峰命名 #12
Comments
function changeLine (str) { |
function changeLine(str) { |
function toCamel(str) {
return str.replace(/(\w)(_)(\w)/g, (match, $1, $2, $3) => `${$1}${$3.toUpperCase()}`)
}
console.log(toCamel('a_bc_def')) // aBcDef |
上面的方法对 a_c_def 会返回 aC_def,想要返回 ACDef 得: function toCamel(str) {
str = str.replace(/(\w)/, (match, $1) => `${$1.toUpperCase()}`)
while(str.match(/\w_\w/)) {
str = str.replace(/(\w)(_)(\w)/, (match, $1, $2, $3) => `${$1}${$3.toUpperCase()}`)
}
return str
}
console.log(toCamel('a_c_def')) // ACDef |
function toCamelCase(str) {
if (typeof str !== 'string') {
return str;
}
return str
.split('_')
.map(item => item.charAt(0).toUpperCase() + item.substr(1, item.length))
.join('');
} |
|
function strToCamel(str){ return str.replace(/(^|_)(\w)/g,(m,$1,$2)=>$2.toUpperCase()); } |
let str = 'hello_word' function capital(str) {
} console.log(capital(str)) // HelloWord |
function transoform(str) {
var result = str.split('');
result.forEach(function(e, i, a) {
if (e === '_') { a[i + 1] = a[i + 1].toUpperCase(); }
});
return result.join('').replace(/\_*/g, '');
}
var result = transoform('if_you_are_my_world');
console.log(result); // ifYouAreMyWorld |
function changeStr(str){
if(str.split('_').length==1)return;
str.split('_').reduce((a,b)=>{
return a+b.substr(0,1).toUpperCase() + b.substr(1)
})
} |
function capitalize(str) { |
|
有一个小问题,当str以 _ 结尾的时候,不存在 a[i+1] |
function snakeToCamel(str: string) {
const s = str
.split('_')
.filter(v => !!v)
.map(v => v[0].toUpperCase() + v.substr(1))
.join('');
return s[0].toLowerCase() + s.substr(1);
} |
const toCamel = str =>
str
.split("_")
.filter(s => !!s)
.map((s, index) => (index === 0 ? s : s[0].toUpperCase() + s.slice(1)))
.join("");
console.log(toCamel("a_bc_d"));
console.log(toCamel("bc_d"));
console.log(toCamel("bc___________ed"));
console.log(toCamel("_______a_bc_d__"));
// 顺便写的驼峰转下划线
const toSnake = str => {
const target = str[0].toLowerCase() + str.slice(1);
let result = target;
(target.match(/[A-Z]/g) || []).forEach(word => {
result = result.replace(word, `_${word.toLowerCase()}`);
});
return result;
};
console.log(toSnake("aBcDeFg"));
console.log(toSnake("ABCDEFG")); |
console.log(changeHump('aewq_a_rgt____eryry')) |
func("a_c_def") |
献丑了,通过去掉下划线和空格的方式进行实现 |
|
|
const changeStr = (str) => {
if(typeof str != 'string') return 'go away'
let _str = str.replace(/__+/g, '_') // '_what_the_f**k_'
if (_str.startsWith('_')) _str = _str.substr(1, _str.length) // 'what_the_f**k_'
if (_str.endsWith('_')) _str = _str.substr(0, _str.length - 1) // 'what_the_f**k'
return _str.split('_').reduce((acc, x) => acc + x[0].toUpperCase() + x.substr(1))
}
changeStr('_what______the_f**k__') |
function lineChangeUpper(str) { let str = "up_set_to"; 不太明白那些写那么复杂的有啥用???笔试题会让你写这么复杂的,越短小易懂越好; |
const underlineToBigHump = str =>
typeof str === 'string'
? str
.split('_')
.map(item => item.toLocaleLowerCase())
.reduce(
(pre, item) =>
item ? `${pre}${item[0].toLocaleUpperCase()}${item.slice(1)}` : pre,
''
)
: str |
|
|
function toCamelCase(str) {
return str.replace(/_(\w)/g, function(m, $1) {
return $1 ? $1.toUpperCase() : m
})
}
toCamelCase('_a_b_c__') |
|
|
function changeStr(str){ changeStr("add_ffff_dd") |
// 将-转出大驼峰字符 |
var str="defrg_dede_you_shi"
我自己是转换成了一个单个的字符数组
可借鉴的方法
|
let str = "a_b_cdef_ef";
let ary = str.split("_").map((item, index) => {
if (index != 0) {
let char = item.charAt(0).toUpperCase();
item = char + item.substring(1);
}
return item;
})
console.log(ary.join('')); |
这是来自QQ邮箱的假期自动回复邮件。您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
|
'ak_das_sda'.replace(/(^|_)(\w)/g, (match, $1, $2) => $2.toUpperCase()) |
|
这是来自QQ邮箱的假期自动回复邮件。您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
|
function changeStr(str){ |
这是来自QQ邮箱的假期自动回复邮件。您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
|
这是来自QQ邮箱的假期自动回复邮件。您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
|
function toCamelCase(str) { |
正好把之前的递归和去掉最后一个指定字符 用到的方法结合起来 function formatting(str, ref) { |
这是来自QQ邮箱的假期自动回复邮件。您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
|
复习 |
let str = "my_name_is_liuyu" |
您好,邮件已收到,我会尽快回复。
|
这是来自QQ邮箱的假期自动回复邮件。您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
|
function transform(str) { |
这是来自QQ邮箱的假期自动回复邮件。您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
|
|
这是来自QQ邮箱的假期自动回复邮件。您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
|
function snakeToUppercase(str){ } |
您好,邮件已收到,我会尽快回复。
|
这是来自QQ邮箱的假期自动回复邮件。您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
|
function transform(str) { |
这是来自QQ邮箱的假期自动回复邮件。您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
|
let str = '___aa__B_a__characters___';
const regex = /(.)(_)(.)/g
let cnt = 0
let preStr = str
while (regex.test(str)) {
str = str.replace(regex, (match, $1, $2, $3) => `${$1}${$3.toUpperCase()}`)
if (preStr = str && str[0] == '_') {
str = str.substring(1, str.length);
str = str.charAt(0).toUpperCase() + str.slice(1)
}
preStr = str;
}
if (preStr = str && str[str.length - 1] == '_') str = str.substring(0, str.length - 1)
console.log(str) // AaBACharacters 循环次数和中间连续出现_最长个数正相关 |
这是来自QQ邮箱的假期自动回复邮件。您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
|
您好,邮件已收到,我会尽快回复。
|
第4天 写一个方法把下划线命名转成大驼峰命名
The text was updated successfully, but these errors were encountered: