我想在JavaScript中对以下形式的字符串执行ucwords():test1_test2_test3,它应返回Test1_Test2_Test3。

我已经在SO上找到一个ucwords函数,但是它只占用空间作为新单词分隔符。这是函数:

function ucwords(str) {
return (str + '').replace(/^([a-z])|\s+([a-z])/g, function ($1) {
    return $1.toUpperCase();
});


有人可以帮忙吗?

最佳答案

只需在可接受的分词列表中添加下划线即可:

function ucwords(str) {
return (str + '').replace(/^([a-z])|[\s_]+([a-z])/g, function ($1) {
    return $1.toUpperCase();
})
};


如您所见,我将\s+的位替换为[\s_]+

实时示例:http://jsfiddle.net/Bs8ZG/

09-17 20:38