Javascript将 "Mc"之后的下一个字符大写

标签 javascript jquery regex

给定一个像 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/

相关文章:

javascript - 字符串在json中递归替换值

javascript - WebStorm Unresolved 变量警告

javascript - JQuery 已弃用的 delegate() 的替代方案是什么?

regex - NodeJS + Express 3 - Route 中的斜线然后固定操作

java - 使用正则表达式运行计算器程序时出现 NumberFormatException

javascript - 用于在 javascript 中的单词边界上包装 span 标记中每个单词的正则表达式

c# - asp.net:如何将类似 LinkBut​​ton 的链接功能与表格单元格背景上的委托(delegate)连接起来?

javascript - 纯 JavaScript 中的 ES6

Jquery:在父级悬停时更改子图像 href 源的一部分

javascript - 当下方没有可用空间时,在上方显示弹出气泡