我试图在 toCamelCase 函数中省略 _
I am trying to omit _ in toCamelCase function
我试图在字符串上使用 .replace()
来省略下划线和驼峰大小写,无论字符串是通过函数传递的。我能够省略“”和“-”,但我正在努力使用 \W/ 来省略“_”。
我写的一小段代码是:
function toCamelCase(str) {
return str.replace(/\W+(.)/g, function(match, chr) {
return chr.toUpperCase();
});
}
console.log(toCamelCase("javaScript Exercises"));
console.log(toCamelCase("java-script-exercises"));
console.log(toCamelCase("java_script_exercises"))
即使第一个字母大写,我也有它,它仍然是大写,后面只有 运行s 驼峰式。
如果您能够 运行 代码片段,您将看到输出:
javaScriptExercises
javaScriptExercises
java_script_exercises //my issue is here
我看到几个错误说 chr.upperCase()
不是在整个项目中尝试不同版本的 /\W+(.)/g
的函数。这对 .replace()
不可行吗?
而不是 \W+
,使用 [\W_]+
- 下划线是单词字符,因此 [\W_]
将匹配任何非单词字符 或 一个下划线,并删除它们:
function toCamelCase(str){
return str.replace(/[\W_]+(.)/g, function(match, chr) {
return chr.toUpperCase();
});
}
console.log(toCamelCase("javaScript Exercises"));
console.log(toCamelCase("java-script-exercises"));
console.log(toCamelCase("java_script_exercises"))
空格和 -
不是单词字符,因此 \W
匹配它们。如果您有一个需要替换哪些字符的白名单,那么逻辑可能更容易理解 - 例如,使用 [ _-]
:
的字符集
function toCamelCase(str){
return str.replace(/[ _-]+(.)/g, function(match, chr) {
return chr.toUpperCase();
});
}
console.log(toCamelCase("javaScript Exercises"));
console.log(toCamelCase("java-script-exercises"));
console.log(toCamelCase("java_script_exercises"))
试试这个。由于 \W
在列表中包含 _
,因此它不会替换 _
。
\W is same as [^a-zA-Z0-9_]
function toCamelCase(str){
return str.replace(/[^a-zA-Z0-9]+(.)/g, function(match, chr) {
return chr.toUpperCase();
});
}
console.log(toCamelCase("javaScript Exercises"));
console.log(toCamelCase("java-script-exercises"));
console.log(toCamelCase("java_script_exercises"))
我试图在字符串上使用 .replace()
来省略下划线和驼峰大小写,无论字符串是通过函数传递的。我能够省略“”和“-”,但我正在努力使用 \W/ 来省略“_”。
我写的一小段代码是:
function toCamelCase(str) {
return str.replace(/\W+(.)/g, function(match, chr) {
return chr.toUpperCase();
});
}
console.log(toCamelCase("javaScript Exercises"));
console.log(toCamelCase("java-script-exercises"));
console.log(toCamelCase("java_script_exercises"))
即使第一个字母大写,我也有它,它仍然是大写,后面只有 运行s 驼峰式。
如果您能够 运行 代码片段,您将看到输出:
javaScriptExercises
javaScriptExercises
java_script_exercises //my issue is here
我看到几个错误说 chr.upperCase()
不是在整个项目中尝试不同版本的 /\W+(.)/g
的函数。这对 .replace()
不可行吗?
而不是 \W+
,使用 [\W_]+
- 下划线是单词字符,因此 [\W_]
将匹配任何非单词字符 或 一个下划线,并删除它们:
function toCamelCase(str){
return str.replace(/[\W_]+(.)/g, function(match, chr) {
return chr.toUpperCase();
});
}
console.log(toCamelCase("javaScript Exercises"));
console.log(toCamelCase("java-script-exercises"));
console.log(toCamelCase("java_script_exercises"))
空格和 -
不是单词字符,因此 \W
匹配它们。如果您有一个需要替换哪些字符的白名单,那么逻辑可能更容易理解 - 例如,使用 [ _-]
:
function toCamelCase(str){
return str.replace(/[ _-]+(.)/g, function(match, chr) {
return chr.toUpperCase();
});
}
console.log(toCamelCase("javaScript Exercises"));
console.log(toCamelCase("java-script-exercises"));
console.log(toCamelCase("java_script_exercises"))
试试这个。由于 \W
在列表中包含 _
,因此它不会替换 _
。
\W is same as [^a-zA-Z0-9_]
function toCamelCase(str){
return str.replace(/[^a-zA-Z0-9]+(.)/g, function(match, chr) {
return chr.toUpperCase();
});
}
console.log(toCamelCase("javaScript Exercises"));
console.log(toCamelCase("java-script-exercises"));
console.log(toCamelCase("java_script_exercises"))