javascript - 使用Javascript,如何将字符串中的每个单词大写(不包括首字母缩略词)?

标签 javascript string

我正在尝试以下解决方案,效果很好,但我有一个额外的要求,我需要从转换中排除首字母缩略词(全部大写的单词)。

String.prototype.capitalize = function(lower) {
    return (lower ? this.toLowerCase() : this).replace(/(?:^|\s)\S/g, function(a) { return a.toUpperCase(); });
};

知道如何做到这一点吗?

最佳答案

这样就可以了:

String.prototype.capitalize = function() {
    return this
             .replace(/(\w*[a-z0-9_]+\w*)/g, function(a) {
                 return a.toLowerCase()
             }).replace(/(?:^|\s)\S/g, function(a) { 
                 return a.toUpperCase();
             });
};

第一部分查找至少有一个非大写字母的单词字符(即首字母缩略词)的所有单词。

关于javascript - 使用Javascript,如何将字符串中的每个单词大写(不包括首字母缩略词)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30039848/

相关文章:

javascript - 如何访问原本不在页面上的按钮以进行动画和刷新?

javascript - Angular JS 和 jqLit​​e 将节点与选择器匹配

c++ - 需要帮助来理解我的字符串出错的地方

c++ - 在C++中匹配长字符串中的短字符串

javascript - 使用基于 JavaScript 的 SVG 库在表头内垂直文本

JavaScript:根据从 "text input"中选择的值启用/禁用 "select input"

用于存储 1000 个标签/本地化标准化的 JavaScript 结构(或数组或列表)

Javascript: trim 数组中字符串的长度

php - 如何从字符串中删除前导字符?

java - 当 TextField 中的字符串超过 5 个字符时启用按钮