You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript/Node.js中是否有PHP mb_convert_case(MB_CASE_TITLE)的等效函数?

JavaScript/Node.js 中类似 PHP mb_convert_case(MB_CASE_TITLE) 的实现

在JavaScript和Node.js环境中没有原生的完全等效于PHP mb_convert_case(MB_CASE_TITLE)的函数,但可以通过原生API结合自定义逻辑实现相同效果,满足姓名、街道名称这类文本的首字母大写需求。

基础实现(空格分隔文本)

针对普通空格分隔的字符串,可通过先转小写再匹配单词首字母转大写的方式实现:

function toTitleCase(str) {
  // 先统一转小写,再匹配字符串开头或空格后的首字母转大写
  return str.toLocaleLowerCase().replace(/(^|\s)\w/g, match => match.toLocaleUpperCase());
}

示例用法:

console.log(toTitleCase("JOHN DOE")); // 输出: John Doe
console.log(toTitleCase("MAIN STREET")); // 输出: Main Street

增强实现(处理特殊名称格式)

针对包含撇号、连字符的姓名(如O'CONNOR、MARY-ANN),需要调整正则规则以兼容这类边界:

function toTitleCaseEnhanced(str) {
  // 匹配字符串开头,或非单词/非撇号字符后的首字母
  return str.toLocaleLowerCase().replace(/(^|[^\w'])(\w)/g, (_, prefix, char) => prefix + char.toLocaleUpperCase());
}

示例用法:

console.log(toTitleCaseEnhanced("O'CONNOR")); // 输出: O'Connor
console.log(toTitleCaseEnhanced("MARY-ANN")); // 输出: Mary-Ann
console.log(toTitleCaseEnhanced("VAN DYKE")); // 输出: Van Dyke

多语言支持版本

如果需要处理带重音的非英语字符(如法语、德语),可以指定本地化参数确保字符转换准确:

function toTitleCaseLocale(str, locale = 'en-US') {
  return str.toLocaleLowerCase(locale).replace(/(^|[^\w'])(\w)/g, (_, prefix, char) => prefix + char.toLocaleUpperCase(locale));
}

示例用法:

console.log(toTitleCaseLocale("ÉLÉPHANT ROUGE")); // 输出: Éléphant Rouge

内容的提问来源于stack exchange,提问作者Thallius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 09:08:10