帕斯卡命名法
pascalCase
功能介绍:将 str-demo 转换为: StrDemo
/*
str.replace(regexp | substr, newSubStr | function)
假如replace()方法的第一个参数是一个RegExp 对象,则代表第n个括号匹配的字符串。
(对应于上述的$1,$2等。)例如,如果是用 /(\a+)(\b+)/ 这个来匹配,p1 就是匹配的 \a+,p2 就是匹配的 \b+。
正则表达式表达式 - 语法:
\w 匹配字母、数字、下划线。等价于 [A-Za-z0-9_]
^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,请使用 \^。
[^ABC] 匹配除了 [...] 中字符的所有字
\s 匹配所有空白符,包括换行;
\S 匹配非空白符,不包括换行;
\s\S 匹配所有;
正则表达式表达式 - 元字符:
\\ * 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
\\ + 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
\\ ? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 。? 等价于 {0,1}。
\\ * 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
*/
export function pascalCase(str: string) {
return (
str.charAt(0).toUpperCase() +
str.slice(1).replace(/-(\w)/g, (a, b) => b.toUpperCase())
);
// 方法二:
// return name.replace(/(^|-)(\w)/g, (...args) => args[2].toUpperCase())
}