2017-02-23 135 views
0

我是JavaScript或正则表达式的新手。我需要将第一个字母替换为大写字母,我的代码执行此操作,但它也会替换特殊字符或其他字母后的字母(比如ąčęėįš等),并以某种方式避免它并仅更改第一个字母。有人可以帮我解决这个问题吗?特殊字符或字母后首字母大写

我的代码是在这里:

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

回答

0

然后,你需要删除字边界与空间或启动锚匹配。

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

谢谢你,成功了! – devorye

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))

0

我更喜欢非正则表达式回答所有这些问题,为了好玩,大多不需要复杂的正则表达式

"java script is cool".split(" ").map(function(w){return w[0].toUpperCase()+w.substr(1)}).join(" ") 
"Java Script Is Cool"