用于变音符号的JavaScript标题案例(非ASCII)

Title Case in JavaScript for diacritics (non-ASCII)

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

1
2
3
áá  àà  ??  ??  ??  ??  ??  ?a  ??  ??  ??  ??  ǎǎ  ??  ??  ??  ??  ??
éé  èè  ??  êê  ??  ??  ??  ??  ěě  ??  ??  ??  ??  ??  ??  ēē  ??  ??
etc.

例如,如果字符串是"anders"?NGSTR?M",应该把它变成"anders"?NGSTR?M"。已经存在的脚本将转换为"anders"?Ngstr?M"。


试试这个:

1
2
3
4
5
6
7
8
9
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。