如果是字母,我该如何创建一条字符的第一个字符,但不会改变其他字符中的任何一个字符的案例?
例如:
“这是一个测试” → “这是一个测试” “埃菲尔塔” → “埃菲尔塔” “/index.html” → “/index.html”
如果是字母,我该如何创建一条字符的第一个字符,但不会改变其他字符中的任何一个字符的案例?
例如:
“这是一个测试” → “这是一个测试” “埃菲尔塔” → “埃菲尔塔” “/index.html” → “/index.html”
当前回答
只有CSS
如果转换仅需要在网页上显示:
p::first-letter {
text-transform: uppercase;
}
尽管被称为“::第一字”,但它适用于第一个字符,即在 %a 字符的情况下,这个选择器将适用于 % 并且作为这样一个不会被资本化。
ES2015 单线
const capitalizeFirstChar = str => str.charAt(0).toUpperCase() + str.substring(1);
注意事项
在我所执行的指标中,在 string.charAt(0) 和 string(0) 之间没有显著的差异。 但是,请注意,该 string(0) 会为一个空的 string 不定义,因此该函数必须重写以使用“string && string(0)”,这与替代品相比是过于垂直的。
与 substring() 和 slice() 之间的比较
差异在今天相当微小(自己进行测试):
21,580,613.15 ops/s ±1.6% for substring(), 21,096,394.34 ops/s ±1.8% (2.24% 缓慢) for slice()。
此分類上一篇
其他回答
使用此 Node.js 模块, http://stringjs.com/ 包,以资本化您的行:
var S = require('string');
S('jon').capitalize().s; //'Jon'
S('JP').capitalize().s; //'Jp'
好吧,所有答案都会崩溃,如果方法通过一些意想不到的数据类型,如对象或功能。
因此,要确保它不会在任何情况下崩溃,我们将需要检查类型。
首頁 〉外文書 〉文學 〉文學 〉 〉 〉 〉 〉 〉 〉 〉 〉 〉 〉 〉 〉 〉 〉 〉 〉
下面是最受欢迎的答案的简短版本,通过将线作为序列来处理第一个字母:
function capitalize(s)
{
return s[0].toUpperCase() + s.slice(1);
}
更新
根据下面的评论,这在 IE 7 或下方不起作用。
更新2:
要避免未定义为空线(参见 @njzk2 下面的评论),您可以检查一个空线:
function capitalize(s)
{
return s && s[0].toUpperCase() + s.slice(1);
}
是版本
const capitalize = s => s && s[0].toUpperCase() + s.slice(1)
// to always return type string event when s may be falsy other than empty-string
const capitalize = s => (s && s[0].toUpperCase() + s.slice(1)) || ""
首先,我只是想清楚资本化在这个背景下意味着什么,“这条线是资本化”可靠的来源
你可以从例子中看到,只要这不是OP正在寻找的东西,它应该说的是“我如何制作一条线的第一字”(不资本化线)
function ucfirst (str) {
return typeof str != "undefined" ? (str += '', str[0].toUpperCase() + str.substr(1)) : '';
}
解释
typeof str != "undefined" // Is str set
? // true
str += '' // Turns the string variable into a string
str[0].toUpperCase() // Get the first character and make it upper case
+ // Add
str.substr(1) // String starting from the index 1 (starts at 0)
: // false
''; // Returns an empty string
这将与任何论点或没有论点工作。
undefined === ""
"" === ""
"my string" === "My string"
null === "Null"
undefined === "";
false === "False"
0 === "0"
true === "True"
[] === ""
[true,0,"",false] === "True,0,,false"
尝试下列功能:
function capitalize (string) {
return [].map.call(string, (char, i) => i ? char : char.toUpperCase()).join('')
}
使用:
capitalize('hello, world!')
结果:
Hello, world!