4

是否有可能创建一个可以将字符串转换为标题大小写但适用于非 ASCII (Unicode) 字符的 JavaScript 函数?例如具有以下字符:

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

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

4

2 回答 2

23

试试这个:

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"
于 2013-03-01T04:30:18.590 回答
-1

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

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

于 2013-03-01T03:59:08.323 回答