给定一个像 Marty Mcfly
这样的字符串,是否有正则表达式或其他单行解决方案来将 'f' 大写以便我得到 Marty McFly
?
我总是可以指望名字和姓氏之间的空格,姓氏的第一个字母(即 M)总是大写。
我对几乎所有 javascript、jquery、regex 解决方案都持开放态度,我只需要它简短明了。
我有一个使用 indexOf 和 substring 将字符串分开的方法,但我希望有一个正则表达式或类似的东西。
最佳答案
您可以利用 String.replace
的形式,它将函数作为第二个参数:
function fixMarty(s) {
return (""+s).replace(/Mc(.)/g, function(m, m1) {
return 'Mc' + m1.toUpperCase();
});
}
fixMarty('Marty Mcfly'); // => "Marty McFly"
fixMarty("Mcdonald's"); // => "McDonald's"
关于Javascript将 "Mc"之后的下一个字符大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7153400/