我试图定位字符串中每个单词的第一个字母。我在JavaScript工作。我发现Python和PHP的讨论没有解决我特定于JavaScript的问题。
str = "i'm a little tea pot"
regEx = /^.|\b[a-z]/g
我有一个函数,用于对regEx找到的每个字母进行大写。我的结果是撇号大写后的m
。我该如何避免这种情况?
大写后功能: 我是一个小茶壶"
答案 0 :(得分:1)
将每个单词的首字母大写?
var string = prompt("Enter a string");
function capitalizeFirstWord(str) {
return str.split(/\s+/).map(function(word) {
return word[0].toUpperCase() + word.slice(1).toLowerCase();
}).join(' ');
}
document.getElementById("capitalized").innerHTML = capitalizeFirstWord(string);

<p id="capitalized"></p>
&#13;
您在字边界处拆分字符串。作为参数,您传入空字符串或空白字符\s
。这会在句子中创建所有单词的数组。
要获取第一个字符,您可以使用word[0]
或word.charAt(0)
。然后,您可以使用字符串的其余部分执行字符串连接。
这为您提供了一个全新的数组,需要将其转换回字符串。在这个新数组上调用join方法
答案 1 :(得分:1)
您可以在str.replace
中使用回叫功能。
var str = "i'm a little tea pot"
alert(str.replace(/(^|\s)([a-z])/g, function(match, group_1, group_2){return group_1 + group_2.toUpperCase()}))
如果你想将第一个字符后面的字符转换为小写,那么试试这个。
str.replace(/(^|\s)([a-z])(\S*)/g, function(x,y, z, a){return y + z.toUpperCase() + a.toLowerCase()})