在特殊字符或字母后首字母大写

时间:2017-02-23 07:30:19

标签: javascript regex replace

我是Javascript或正则表达式的新手。我需要将第一个单词字母替换为大写字母,我的代码会将其替换,但它也会在特殊字符或其他字母(如ąčęėįš等)之后替换字母,并且我需要避免它并仅更改第一个字母。有人可以帮我解决这个问题吗?

我的代码在这里:

function capitalizeName(input) {
var name = input.val();
    name = name.toLowerCase().replace(/\b[a-z]/g, function(letter) {
    return letter.toUpperCase();
})
input.val(name);

2 个答案:

答案 0 :(得分:0)

然后你需要用空格删除单词边界或开始锚定匹配。

name = name.toLowerCase().replace(/(^|\s)[a-z]/g, function(letter) {
    return letter.toUpperCase();
})

答案 1 :(得分:0)

This应该适合你:

或者

console.log("tihi is some rčęėįš random typing. Is it good? maby has some minor-bugs but at least works"
.replace(/\w.*?\W/g, x => x[0].toUpperCase() + x.substr(1)))

你必须在最后添加非世界字符才能使其正常工作。

const data = "tihi is some rčęėįš random typing. Is it good? maby has some minor-bugs but at least works."
    
    
const capitalize = data => (data + ' ').replace(/\w.*?\W/g, x => x[0].toUpperCase() + x.substr(1)).substr(0, data.length)


console.log(capitalize(data))