句子中每个单词的首字母大写
capitalize the first letter of each word in a sentence
嘿,伙计,谁能帮我修改一下我的代码,让它完成文本中显示的任务,
function tad(strg) {
var char = strg.split('-')
for (var i = 1; i < char.length; i++) {
return char[i].charAt(0).toUpperCase() + char[i].slice(1)
}
}
camelize("background-color") == 'backgroundColor'
camelize("list-style-image") == 'listStyleImage'
假设您希望将所有包含连字符的单词组合替换为驼峰大小写单词。您可以对String.replace
使用带有回调函数的正则表达式,该函数将连字符后的所有单词大写。
function camelize (strg) {
return strg.replace(/-('w)/g, function (match) {
return match[1].toUpperCase();
});
}
camelize("background-color");
// backgroundColor
camelize("z-index");
// zIndex
camelize("list-style-image");
// listStyleImage
JSFIDDLE
像下面这样改变你的函数
function tad(strg) {
var char = strg.split('-')
for (var i = 1; i < char.length; i++) {
char[i] = char[i].charAt(0).toUpperCase() + char[i].slice(1)
}
return char.join('');
}
在循环完成其迭代之前返回。这里最好是像这样使用Array.prototype.reduce
function tad(strg) {
return strg.split('-').reduce(function(result, currentStr) {
return result + currentStr.charAt(0).toUpperCase() + currentStr.slice(1);
}, "");
}
console.log(tad("background-color") === "backgroundColor");
# true
console.log(tad("list-style-image") === "listStyleImage");
# true
首先,您应该将结果连接到某个变量中,而不是在循环中返回。
其次,不要忘记添加数组的第一个元素,因为你的循环是从1开始的。
function camelize(strg) {
var char = strg.split('-'), result = char[0]
for (var i = 1; i < char.length; i++) {
result += char[i].charAt(0).toUpperCase() + char[i].slice(1)
}
return result
}
alert(camelize("background-color"));
alert(camelize("list-style-image"));
Here is fiddle:
http://jsfiddle.net/C78T3/在该循环的第一次迭代中从整个函数中取出return
。相反,您希望对每个部分都这样做,并将这些部分连接在一起:
function camelize(string) {
return string.split('-').map(function(part, i) {
return i ? part.charAt(0).toUpperCase() + part.slice(1) : part;
}).join("");
}
// or
function camelize(string) {
return string.split('-').reduce(function(m, part) {
return m + part.charAt(0).toUpperCase() + part.slice(1);
});
}
// or
function camelize(string) {
var parts = string.split('-'),
result = ""
for (var i = 1; i < parts.length; i++) {
result += parts[i].charAt(0).toUpperCase() + parts[i].slice(1)
}
return result;
}
相关文章:
- 使用jQuery检查提交时添加到句子中的单词
- 如何使用Javascript在给定的句子中找到大写单词并在其前面添加一个字符
- 获取特殊字符后没有单词的句子
- 我怎么能用css或(angular)javascript把句子分成两行,只在特定单词后面
- 找出句子中最长的单词——Javascript
- undercore返回数组中对象的indes,其中单词存在于对象中的句子中
- 如何按从当前单词到段落中该句子(.)结尾的范围选择文本
- regex过滤单词长度最小的句子
- Regex帮助:将单词分解以完成句子测验
- JavaScript只接收句子中的第一个单词
- 在jQuery中,只从句子中获取单词或数字的一部分
- 使用正则表达式提取句子中的最后几个单词
- 我如何在 Java 脚本中找到句子中单词的出现次数
- 计算长字符串中每个句子的单词,jQuery
- 将句子或驼峰大小写单词转换为棘壳
- JavaScript 正则表达式匹配句子中的单词
- 将句子字符串拆分为单词数组,然后将单词数组拆分为单词数组中的字符数组
- 正则表达式检查句子的单词
- 特定的UIWebView选择(只有整个单词/句子)
- 如何通过链接证明页面中的单词(句子)