首页 > 解决方案 > 使用 .toUpperCase 和 .slice 将首字母大写不起作用

问题描述

我有通过 DataTable 呈现的 JSON 数据,在其中一个列中,文本显示为大写,我希望它像这样,只有第一个字母是大写的。

根据 SO 上的其他帖子,建议.toUppercase使用它.slice。根据我所拥有的,我觉得我的代码应该可以工作,但由于某种原因它不是。由于我正在使用 DataTables,我必须克服一些障碍才能获得结果,所以我想知道 DT 是否也是问题的根源。

JS 片段:

$(document).ready(function() {
        $('#matters-table').DataTable({
            columns: [
                { data: "0" },
                { data: "1" },
                { data: "Status" }, // is in all caps when rendered
                { data: "3" }
            ],
            columnDefs: [
                {"targets":2,"render": function(data) {
                    return data[0].toUpperCase() + data.slice(1);
                }}
            ],
            data: mattsText,
            ... // --------------- irrelevant info.

对这个有什么想法吗?

标签: javascriptjquerydatatables

解决方案


使用以下capitalize函数作为渲染函数(注意添加的split):

capitalize = str => str.split('')[0].toUpperCase() + str.slice(1);

console.log(capitalize('hello world'));


推荐阅读