JavaScript中用于变音符号(非ascii)的标题大小写

Title Case in JavaScript for diacritics (non-ASCII)

本文关键字:ascii 标题 大小写 用于 音符 符号 JavaScript      更新时间:2023-09-26

是否可以创建一个JavaScript函数,可以将字符串转换为标题大小写,但可以使用非ascii (Unicode)字符?例如:

Áá  Àà  Ăă  Ắắ  Ằằ  Ẵẵ  Ẳẳ  Ââ  Ấấ  Ầầ  Ẫẫ  Ẩẩ  Ǎǎ  Åå  Ǻǻ  Ää  Ǟǟ  Ãã
Éé  Èè  Ĕĕ  Êê  Ếế  Ềề  Ễễ  Ểể  Ěě  Ëë  Ẽẽ  Ėė  Ȩȩ  Ḝḝ  Ęę  Ēē  Ḗḗ  Ḕḕ
etc.

例如,如果字符串是"anders ångström",它应该将其转换为"anders Ångström"。已经存在的脚本将转换为"Anders åNgström"。

试试这个:

var str = 'anders ångström';
str = str.replace(/[^'s]+/g, function(word) {
  return word.replace(/^./, function(first) {
    return first.toUpperCase();
  });
});
console.log(str); //=> "Anders Ångström"

Javascript的内置转换是unicode感知的,例如"å".toUpperCase()返回"Å"。所以我不确定你的"现有脚本"做错了什么。

但是,如果您需要完全支持Unicode的大小写转换(或其他Unicode支持),您可能需要查看Unicode .js。