【发布时间】:2016-09-05 11:32:10
【问题描述】:
我正在尝试检测哪个单词是名称,并将其首字母大写。这是我尝试过的代码:
else if (splitInput[i].match(/a|e|i|o|u/)){
i = 0;
var up = input.indexOf("ben");
up = up + 4;
console.log("toUpperCase: " + up);
i = slotBen + 1;
var toUp = input.charAt(up);
console.log("Before uppercase: " + toUp);
var afUp = toUp.toUpperCase();
//input.charAt(up).replace(toUp, afUp);
console.log("After toUpperCase: " + afUp);
//input.replace(toUp, afUp);
console.log(input);
bubbleR.innerHTML = input;
console.log('slotBen:', slotBen);
userID.name = splitInput[i];
可能有点太复杂了,但我无法让它工作或更容易阅读/理解。如果你运行这个函数,它会确切地知道它必须大写哪个字母,但它不会在input 中替换它。这是codepen
文本是荷兰语,但不要介意:)
编辑:建议尝试一下:
var capitalized = splitInput[i].toUpperCase() + input.substr(1);
我是i = slotBen + 1;,但它不起作用。我想我确实实现了它,但我不确定。尝试了不同的组合,但都没有成功。
【问题讨论】:
-
您可能想在 'ben' 前后添加空格,因为现在,任何出现的 'ben' 都会大写(这会导致单词 Benign 也会大写)
-
什么是
slotBen?无论如何,JS 字符串是不可变的;你不能“替换”字符。您必须创建一个新字符串。replace不会替换现有字符串中的字符;它使用指定的替换创建一个新字符串。如果您阅读文档,这一切都应该很清楚。更一般地说,搜索“在 JavaScript 中大写单词”应该会找到很多方法。 -
可以选择 CSS 吗?有一个文本转换:大写;
-
@moefinley 我不知道,找不到合适的解决方案
-
最简单的大写字符串的方法是:s.substring(0, 1).toUpperCase() + s.substring(0, 1)
标签: javascript charat