我需要在 javascript 中将名称大写,到目前为止我已经在 SO 上找到了这些方法:
// doesn't capitalize first letter after hyphen -> gives Bjørn-martin
str.replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); });
// capitalizes after hyphen, but also after funny Norwegian characters (æøå) -> gives BjøRn-Martin
str.replace(/\b[\w']+\b/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); });
// same as first
str = str.toLowerCase().replace(/^[\u00C0-\u1FFF\u2C00-\uD7FF\w]|\s[\u00C0-\u1FFF\u2C00-\uD7FF\w]/g, function(letter) {
return letter.toUpperCase();
});
当尝试将 bjørn-martin
大写时,它们都无法同时处理有趣的挪威字符和连字符。
我不太精通正则表达式,想知道是否有人可以为我指出正确的方向,以便将 bjørn-martin
正确地大写为 Bjørn-Martin
.
最佳答案
这应该适合您的需求:
var capitalized = input.replace(/(^|[\s-])\S/g, function (match) {
return match.toUpperCase();
});
关于javascript - 在 JavaScript 中将连字符的名称大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35504848/