4541

文字列の最初の文字を大文字にし、他の文字の大文字と小文字を変更しないようにするにはどうすればよいですか?

例えば:

  • "this is a test""This is a test"
  • "the Eiffel Tower""The Eiffel Tower"
  • "/index.html""/index.html"
4

114 に答える 114

6911

基本的な解決策は次のとおりです。

function capitalizeFirstLetter(string) {
  return string.charAt(0).toUpperCase() + string.slice(1);
}

console.log(capitalizeFirstLetter('foo')); // Foo

他のいくつかの回答は変更String.prototypeされます(この回答も以前は変更されていました)が、保守性のために今はこれに反対することをお勧めします(関数がどこに追加されているかを見つけるのが難しく、prototype他のコードが同じ名前/ブラウザを使用している場合、競合が発生する可能性があります将来同じ名前のネイティブ関数を追加します)。

...そして、この驚くほど良い答え(以下に埋もれています) が示すように、国際化を考慮すると、この質問にはさらに多くのことがあります。

コード単位の代わりに Unicode コード ポイントを使用する場合 (たとえば、Basic Multilingual Plane の外部で Unicode 文字を処理する場合) はString#[@iterator]、コード ポイントで機能するという事実を活用できtoLocaleUpperCase、ロケールに適した大文字を取得するために使用できます。

const capitalizeFirstLetter = ([ first, ...rest ], locale = navigator.language) =>
  first.toLocaleUpperCase(locale) + rest.join('')

console.log(
  capitalizeFirstLetter('foo'), // Foo
  capitalizeFirstLetter(""), // "" (correct!)
  capitalizeFirstLetter("italya", 'tr') // İtalya" (correct in Turkish Latin!)
)

さらに多くの国際化オプションについては、以下の元の回答を参照してください。

于 2009-06-22T08:30:38.520 に答える
1554

よりオブジェクト指向のアプローチは次のとおりです。

Object.defineProperty(String.prototype, 'capitalize', {
  value: function() {
    return this.charAt(0).toUpperCase() + this.slice(1);
  },
  enumerable: false
});

次のように関数を呼び出します。

"hello, world!".capitalize();

予想される出力は次のとおりです。

"Hello, world!"
于 2010-07-20T15:51:07.890 に答える
791

CSS で:

p::first-letter {
    text-transform:capitalize;
}
于 2012-07-17T14:06:18.013 に答える
420

文字列を配列として処理して最初の文字を取得する、一般的な回答の短縮版を次に示します。

function capitalize(s)
{
    return s[0].toUpperCase() + s.slice(1);
}

アップデート

以下のコメントによると、これは IE 7 以下では機能しません。

更新 2:

undefined空の文字列を回避するには (以下の @njzk2 のコメントを参照)、空の文字列を確認できます。

function capitalize(s)
{
    return s && s[0].toUpperCase() + s.slice(1);
}

ES版

const capitalize = s => s && s[0].toUpperCase() + s.slice(1)

// to always return type string event when s may be falsy other than empty-string
const capitalize = s => (s && s[0].toUpperCase() + s.slice(1)) || ""
于 2011-08-28T23:03:59.043 に答える
247

投稿されたいくつかの異なるメソッドのパフォーマンスに興味がある場合:

この jsperf テストに基づく最速のメソッドを次に示します(最速から低速の順)。

ご覧のとおり、最初の 2 つの方法はパフォーマンスの点で本質的に同等ですが、 を変更するString.prototypeと、パフォーマンスの点で最も遅くなります。

// 10,889,187 operations/sec
function capitalizeFirstLetter(string) {
    return string[0].toUpperCase() + string.slice(1);
}

// 10,875,535 operations/sec
function capitalizeFirstLetter(string) {
    return string.charAt(0).toUpperCase() + string.slice(1);
}

// 4,632,536 operations/sec
function capitalizeFirstLetter(string) {
    return string.replace(/^./, string[0].toUpperCase());
}

// 1,977,828 operations/sec
String.prototype.capitalizeFirstLetter = function() {
    return this.charAt(0).toUpperCase() + this.slice(1);
}

ここに画像の説明を入力

于 2015-11-14T03:26:14.460 に答える
164

別のケースでは、最初の文字を大文字にし、残りを小文字にする必要があります。次の場合、この機能を変更しました。

//es5
function capitalize(string) {
    return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
}
capitalize("alfredo")  // => "Alfredo"
capitalize("Alejandro")// => "Alejandro
capitalize("ALBERTO")  // => "Alberto"
capitalize("ArMaNdO")  // => "Armando"

// es6 using destructuring 
const capitalize = ([first,...rest]) => first.toUpperCase() + rest.join('').toLowerCase();
于 2013-07-19T18:17:51.443 に答える
93

これは 2018 ECMAScript 6+ ソリューションです:

const str = 'the Eiffel Tower';
const newStr = `${str[0].toUpperCase()}${str.slice(1)}`;
console.log('Original String:', str); // the Eiffel Tower
console.log('New String:', newStr); // The Eiffel Tower

于 2018-03-19T15:32:24.423 に答える
83

Lodashを既に使用している (または使用を検討している) 場合、解決策は簡単です。

_.upperFirst('fred');
// => 'Fred'

_.upperFirst('FRED');
// => 'FRED'

_.capitalize('fred') //=> 'Fred'

ドキュメントを参照してください: https://lodash.com/docs#capitalize

_.camelCase('Foo Bar'); //=> 'fooBar'

https://lodash.com/docs/4.15.0#camelCase

_.lowerFirst('Fred');
// => 'fred'

_.lowerFirst('FRED');
// => 'fRED'

_.snakeCase('Foo Bar');
// => 'foo_bar'

最初の大文字のバニラ JavaScript:

function upperCaseFirst(str){
    return str.charAt(0).toUpperCase() + str.substring(1);
}
于 2015-11-29T08:13:55.277 に答える
68

文字列内のすべての単語の最初の文字を大文字にします。

function ucFirstAllWords( str )
{
    var pieces = str.split(" ");
    for ( var i = 0; i < pieces.length; i++ )
    {
        var j = pieces[i].charAt(0).toUpperCase();
        pieces[i] = j + pieces[i].substr(1);
    }
    return pieces.join(" ");
}
于 2011-11-30T17:16:45.560 に答える
53

私のお気に入りの1つで最初のキャラクターを手に入れることができましRegExpた、かわいいスマイリーのように見えます:/^./

String.prototype.capitalize = function () {
  return this.replace(/^./, function (match) {
    return match.toUpperCase();
  });
};

そして、すべてのコーヒー中毒者のために:

String::capitalize = ->
  @replace /^./, (match) ->
    match.toUpperCase()

...そして、ネイティブプロトタイプを拡張せずに、これを行うためのより良い方法があると考えるすべての人のために:

var capitalize = function (input) {
  return input.replace(/^./, function (match) {
    return match.toUpperCase();
  });
};
于 2013-02-15T06:55:26.887 に答える
52

これが呼び出される関数ですucfirst()(「大文字の最初の文字」の略):

function ucfirst(str) {
    var firstLetter = str.substr(0, 1);
    return firstLetter.toUpperCase() + str.substr(1);
}

次のように呼び出して、文字列を大文字にすることができますucfirst("some string")

ucfirst("this is a test") --> "This is a test"

文字列を 2 つに分割することで機能します。最初の行でそれを取り出し、次に 2 行目でを呼び出しfirstLetterて大文字化し、 を呼び出して見つけた残りの文字列と結合します。firstLetterfirstLetter.toUpperCase()str.substr(1)

これは空の文字列では失敗すると思うかもしれません。実際、C のような言語では、これに対応する必要があります。ただし、JavaScript では、空の文字列の部分文字列を取得すると、空の文字列が返されます。

于 2009-06-22T08:33:33.727 に答える
51

使用する:

var str = "ruby java";

console.log(str.charAt(0).toUpperCase() + str.substring(1));

"Ruby java"コンソールに出力されます。

于 2014-09-25T16:13:48.690 に答える
42

すべての単語の最初の文字を大文字にすることに問題がなく、ユースケースが HTML である場合は、次の CSS を使用できます。

<style type="text/css">
    p.capitalize {text-transform:capitalize;}
</style>
<p class="capitalize">This is some text.</p>

これは、CSS text-transform プロパティ( W3Schools ) からのものです。

于 2011-12-09T00:27:16.970 に答える
40
var capitalized = yourstring[0].toUpperCase() + yourstring.substr(1);
于 2016-08-25T12:29:11.650 に答える
39

すべて大文字のテキストを再フォーマットする場合は、他の例を次のように変更することをお勧めします。

function capitalize (text) {
    return text.charAt(0).toUpperCase() + text.slice(1).toLowerCase();
}

これにより、次のテキストが確実に変更されます。

TEST => Test
This Is A TeST => This is a test
于 2011-08-08T16:55:43.030 に答える
35
function capitalize(s) {
    // returns the first letter capitalized + the string from index 1 and out aka. the rest of the string
    return s[0].toUpperCase() + s.substr(1);
}


// examples
capitalize('this is a test');
=> 'This is a test'

capitalize('the Eiffel Tower');
=> 'The Eiffel Tower'

capitalize('/index.html');
=> '/index.html'
于 2015-07-13T20:34:00.600 に答える
34
String.prototype.capitalize = function(){
    return this.replace(/(^|\s)([a-z])/g, 
                        function(m, p1, p2) {
                            return p1 + p2.toUpperCase();
                        });
};

使用法:

capitalizedString = someString.capitalize();

これはテキスト文字列です => これはテキスト文字列です

于 2010-12-15T10:15:57.867 に答える
32
yourString.replace(/\w/, c => c.toUpperCase())

この矢印関数が最も簡単であることがわかりました。Replaceは、文字列の最初の文字 ( \w) に一致し、大文字に変換します。手の込んだものは何も必要ありません。

于 2018-07-14T19:40:37.107 に答える
30
var str = "test string";
str = str.substring(0,1).toUpperCase() + str.substring(1);
于 2014-05-06T05:15:01.883 に答える
23

このソリューションをチェックしてください:

var stringVal = 'master';
stringVal.replace(/^./, stringVal[0].toUpperCase()); // Returns Master
于 2015-08-23T12:51:00.043 に答える
22

これは本当にワンライナーであるため、この回答を含めます。これはES6ベースの補間文字列ワンライナーです。

let setStringName = 'the Eiffel Tower';
setStringName = `${setStringName[0].toUpperCase()}${setStringName.substring(1)}`;
于 2020-04-07T06:10:40.047 に答える
20
yourString.replace(/^[a-z]/, function(m){ return m.toUpperCase() });

(関数にカプセル化することも、頻繁に使用する場合はStringプロトタイプに追加することもできます。)

于 2012-11-19T18:33:08.290 に答える
20

このucfirstようにすると機能が動作します。

function ucfirst(str) {
    var firstLetter = str.slice(0,1);
    return firstLetter.toUpperCase() + str.substring(1);
}

宣言してくれてありがとうJP。

于 2010-08-18T21:07:32.370 に答える
18

これが私のバージョンです。分かりやすくて上品だと思います。

var str = "foo bar baz";

// Capitalize
str.split(' ')
    .map(w => w[0].toUpperCase() + w.substr(1).toLowerCase())
    .join(' ')
// Returns "Foo Bar Baz"

// Capitalize the first letter
str.charAt(0).toUpperCase() + str.slice(1)
// Returns "Foo bar baz"
于 2014-07-21T06:02:05.993 に答える
14

すでに非常に多くの適切な回答がありますが、単純な CSS 変換を使用することもできます。

text-transform: capitalize;

div.c {
  text-transform: capitalize;
}
<h2>text-transform: capitalize:</h2>
<div class="c">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>

于 2020-09-28T14:12:48.340 に答える
13

@salim の回答の編集を投稿して、ロケール文字変換を含めます。

var str = "test string";
str = str.substring(0,1).toLocaleUpperCase() + str.substring(1);
于 2015-05-08T11:54:32.747 に答える
13

CoffeeScriptで、文字列のプロトタイプに追加します。

String::capitalize = ->
  @substr(0, 1).toUpperCase() + @substr(1)

使用法は次のとおりです。

"woobie".capitalize()

どちらが得られますか:

"Woobie"
于 2012-08-15T18:06:01.450 に答える
13

コーヒースクリプト

ucfirst = (str) -> str.charAt(0).toUpperCase() + str.slice(1)

String プロトタイプ メソッドとして:

String::capitalize = -> @charAt(0).toUpperCase() + @slice(1)
于 2011-11-07T20:39:18.037 に答える
12
// Uppercase first letter
function ucfirst(field) {
    field.value = field.value.substr(0, 1).toUpperCase() + field.value.substr(1);
}

使用法:

<input type="text" onKeyup="ucfirst(this)" />
于 2012-08-02T08:21:24.120 に答える
12

JS置換文字列メソッドと単語境界のある正規表現を使用するのは簡単に思えます。

最初の単語の最初の文字を大文字にする: "the eiffel tower" --> "The eiffel tower"

str.replace(/\b\w/, v => v.toUpperCase())

すべての単語の最初の文字を大文字にする: "the eiffel tower" --> "The Eiffel Tower"

str.replace(/\b\w/g, v => v.toUpperCase())
于 2020-01-20T06:12:08.563 に答える
11

考えられる解決策の 1 つ:

function ConvertFirstCharacterToUpperCase(text) {
    return text.substr(0, 1).toUpperCase() + text.substr(1);    
}

これを使って:

 alert(ConvertFirstCharacterToUpperCase("this is string"));

ここでJS Fiddleが動作しています

于 2012-11-14T10:34:38.377 に答える
10

または、 Sugar.js capitalize()を使用できます

例:

'hello'.capitalize()           -> 'Hello'
'hello kitty'.capitalize()     -> 'Hello kitty'
'hello kitty'.capitalize(true) -> 'Hello Kitty'
于 2014-04-15T10:52:34.527 に答える
10

これを行うには複数の方法があります。以下でいくつか試してください

var lower = 'the Eiffel Tower';
var upper = lower.charAt(0).toUpperCase() + lower.substr(1);

正規表現に慣れている場合は、次のようにします。

var upper = lower.replace(/^\w/, function (chr) {
  return chr.toUpperCase();
});

さらに、より現代的な構文を使用して、さらに一歩進めることもできます。

const upper = lower.replace(/^\w/, c => c.toUpperCase());

また、これは、のような特殊文字で始まる単語の例で述べたように、否定的なシナリオを処理します!@#$%^&*()}{{[];':",.<>/?

于 2019-01-14T15:38:54.310 に答える
10

これは、最初の文字のみ、またはダッシュで区切られた単語 (フランス語の名前など) を含む各単語の最初の文字のみを大文字にできるユニバーサル関数を作成する試みです。

デフォルトでは、関数は最初の文字のみを大文字にし、残りはそのままにします。

パラメータ:

  • lc :残りの単語を強制的に小文字にする場合はtrue
  • all :各単語を大文字にする場合はtrue

 

if( typeof String.prototype.capitalize !== "function" ) {
    String.prototype.capitalize = function( lc, all ) {
        if( all ) {
            return this.split( " " )
                       .map( currentValue => currentValue.capitalize( lc ), this )
                       .join( " " )
                       .split( "-" )
                       .map( currentValue => currentValue.capitalize( false ), this )
                       .join( "-" );
        } else {
            return lc
            ? this.charAt( 0 ).toUpperCase() + this.slice( 1 ).toLowerCase()
            : this.charAt( 0 ).toUpperCase() + this.slice( 1 );
        }
    }
}
于 2014-02-06T14:06:16.993 に答える
10

プロトタイプの使用

String.prototype.capitalize = function () {
    return this.charAt(0) + this.slice(1).toLowerCase();
  }

または関数の使用

function capitalize(str) {
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
}
于 2017-03-09T18:16:32.533 に答える
9

正規表現の回答のいずれかを使用する場合は、ASCII 文字でのみ機能することに注意してください。すべての Unicode 文字が大文字になるわけではありません。正規表現を使い続けたい場合は、XRegExp ライブラリとその Unicode プラグインがこの問題を解決しますしたがって、次のようなものが機能します。

String.prototype.capitalize = function () {
    return this.replace(XRegExp("^\\p{L}"), function ($0) { return $0.toUpperCase(); })
}

まだすべての可能性をカバーしているわけではないことを考えると (組み合わせ文字、http://www.regular-expressions.info/unicode.htmlを参照)、 .charAt(0).toUpperCase() アプローチを使用する方が簡単なようです。

于 2011-03-10T07:26:31.507 に答える
9

このコードは、文字列の最初と最後にある余分なスペースも処理します。

let val = '  this is test ';
val = val.trim();
val = val.charAt(0).toUpperCase() + val.slice(1);
console.log("Value => ", val);

于 2021-09-03T09:51:39.027 に答える
8

最初の文字を大文字にし、残りの文字列を小文字にする場合:

function capitalize(str) {
     var splittedEnter = str.split(" ");
     var capitalized;
     var capitalizedResult;
     for (var i = 0 ; i < splittedEnter.length ; i++){
         capitalized = splittedEnter[i].charAt(0).toUpperCase();
         splittedEnter[i] = capitalized + splittedEnter[i].substr(1).toLowerCase();
    }
    return splittedEnter.join(" ");
}

capitalize("tHiS wiLL be alL CapiTaLiZED.");

結果は次のようになります。

これはすべて大文字になります。

于 2016-06-19T18:59:52.180 に答える
8

さて、私はJavaScriptが初めてです。上記を機能させることができませんでした。それで、自分で組み立て始めました。これが私の考えです(同じ、異なる、機能する構文について):

String name = request.getParameter("name");
name = name.toUpperCase().charAt(0) + name.substring(1);
out.println(name);

ここでは、フォームから変数を取得します (手動でも機能します)。

String name = "i am a Smartypants...";
name = name.toUpperCase().charAt(0) + name.substring(1);
out.println(name);

出力: "私は Smartypants です...";

于 2012-05-02T17:02:37.823 に答える
6

function capitalizeEachWord(str) {
    return str.replace(/\w\S*/g, function(txt) {
        return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
    });
}

document.write(capitalizeEachWord('foo BAR God bAD'));

于 2016-07-18T13:40:19.323 に答える
6

小さな改善 - タイトルケースのすべての単語。

String.prototype.toTitleCase = function(){
    return this.replace(/\b(\w+)/g, function(m,p){ return p[0].toUpperCase() + p.substr(1).toLowerCase() });
}

var s = 'heLLo, wOrLD!';
console.log(s.toTitleCase()); // Hello, World!
于 2016-08-30T07:28:25.440 に答える
5

私はjQueryを使用して同じことをしようとしています(つまり、入力中に文字列の最初の文字を大文字にします)。答えを求めてウェブ全体を検索しましたが、見つかりませんでした。on()ただし、次のように jQuery で関数を使用して回避することができました。

$("#FirstNameField").on("keydown",function(e){
    var str = $("#FirstNameField").val();
    if(str.substring()===str.substring(0,1)){
        $("#FirstNameField").val(str.substring(0,1).toUpperCase());
    } 
});

この関数は、データ入力者が連続して入力している間、実際には最初の文字を大文字にします。

于 2013-12-19T18:55:51.390 に答える
5

特に HTTP などの API を使用する場合は、開発環境で次のようなものを使用します。

名前の最初の文字をすべて大文字にし、構成単語の間にハイフンを追加したい HTTP ヘッダーがあるとします。この基本的で単純なルーチンを使用して、そのようなことを達成できます。

'access control allow origin'
    .replace(/\b\w/g, function (match) {
        return match.toUpperCase();
    })
    .split(' ')
    .join('-');

// Output: 'Access-Control-Allow-Origin'

これはおそらく最もエレガントで魅力的な関数定義ではありませんが、確実に仕事を成し遂げます。

于 2015-03-07T15:57:55.583 に答える
5

いいね:

function capitalize(string,a) {
    var tempstr = string.toLowerCase();
    if (a == false || a == undefined)
        return tempstr.replace(tempstr[0], tempstr[0].toUpperCase());
    else {
        return tempstr.split(" ").map(function (i) { return i[0].toUpperCase() + i.substring(1) }).join(" ");
    }
}


capitalize('stack overflow yeah!',true)); //Stack Overflow Yeah!

capitalize('stack stack stack stack overflow yeah!'));//Stack overflow yeah!

https://jsfiddle.net/dgmLgv7b/

于 2015-10-22T11:46:02.587 に答える
5

ワンライナー:

'string'.replace(/(^[a-z])/,function (p) { return p.toUpperCase(); } )

于 2015-12-17T12:13:53.903 に答える
4

これは同じアクションを行います:

var newStr = string.slice(0,1).toUpperCase() + string.slice(1);
于 2016-03-28T19:32:59.527 に答える
4

現在投票されている回答は正しいですが、最初の文字を大文字にする前に、文字列の長さをトリミングまたはチェックしません。

String.prototype.ucfirst = function(notrim) {
    s = notrim ? this : this.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,'').replace(/\s+/g,' ');
    return s.length > 0 ? s.charAt(0).toUpperCase() + s.slice(1) : s;
}

最初に文字列がトリミングされないように notrim 引数を設定します。

'pizza'.ucfirst()         => 'Pizza'
'   pizza'.ucfirst()      => 'Pizza'
'   pizza'.ucfirst(true)  => '   pizza'
于 2015-04-08T20:09:42.263 に答える
4

最初の単語を大文字にする: 最短

text.replace(/(^.)/, m => m.toUpperCase())

各単語を大文字にする: 最短

text.replace(/(^\w|\s\w)/g, m => m.toUpperCase());

残りが小文字であることを確認したい場合:

text.replace(/(^\w|\s\w)(\S*)/g, (_,m1,m2) => m1.toUpperCase()+m2.toLowerCase())
于 2020-03-12T13:12:00.800 に答える
3

これは私が宗教的に使用するものです:

function capitalizeMe(str, force){
    str = force ? str.toLowerCase() : str;
    return str.replace(/(\b)([a-zA-Z])/g,
        function(firstLetter){
            return firstLetter.toUpperCase();
        });
}


var firstName = capitalizeMe($firstName.val());
于 2014-08-07T10:31:41.027 に答える
3

あなたはそのようにする必要があります:

let text = "lower case";
text = text.charAt(0).toUpperCase() + text.substring(1, text.length);
于 2021-04-15T04:29:47.733 に答える
3

検証で最初の文字を大文字にする

function capitalizeFirstLetter(str) {
    return (str && typeof str === 'string') ? (str.charAt(0).toUpperCase() + str.slice(1)) : "";
}

テスト

console.log(capitalizeFirstLetter(0)); // Output: ""
console.log(capitalizeFirstLetter(null)); // Output: ""
console.log(capitalizeFirstLetter("test")); // Output: "Test"
console.log(capitalizeFirstLetter({})); // Output: ""
于 2020-12-03T11:35:36.467 に答える
2

これは先頭の空白の可能性を許容し、文字列の最初の文字のターゲットを見逃すことはありません。したがって、スレッドで利用可能なすでに優れたソリューションが改善される可能性があります。

str = "   the Eifel Tower";
str.replace(/\w/, str.match(/\w/)[0].toUpperCase());
>> "   The Eifel Tower";

!ただし、空白の文字列に対して実行すると、「ソフト」エラーが発生します。この可能性のあるエラーまたは空白文字列または数値の不要な処理を回避するために、三項条件付きガードを使用できます。

+str!=+str ?  str.replace(/\w/, str.match(/\w/)[0].toUpperCase()) : str;
于 2016-05-03T03:12:04.740 に答える
2

このコードを試してください:

alert("hello".substr(0, 1).toUpperCase() + "hello".substr(1));

「hello」の最初の文字を大文字にして、残りを追加しています。

于 2017-12-16T14:47:13.527 に答える
2

Node.js のこのモジュール、http://stringjs.com/パッケージを使用して、文字列を大文字にします。

var S = require('string');
S('jon').capitalize().s; //'Jon'
S('JP').capitalize().s; //'Jp'
于 2014-12-24T16:11:55.197 に答える
1

たとえば、文字列の最初の文字をすべて大文字にしたい場合hello to the worldHello To The World、次を使用できます (Steve Harrison から転用):

function capitalizeEveryFirstLetter(string) {
    var splitStr = string.split(' ')
    var fullStr = '';

    $.each(splitStr,function(index){
        var currentSplit = splitStr[index].charAt(0).toUpperCase() + splitStr[index].slice(1);
        fullStr += currentSplit + " "
    });

    return fullStr;
}

以下を使用して呼び出すことができます。

capitalizeFirstLetter("hello to the world");
于 2015-06-17T18:34:22.907 に答える
1

文字列の最初の文字を大文字にするには

最初の解決策

「これはテストです」→「これはテストです」

var word = "this is a test"
word[0].toUpperCase();

それは次のようになります:「これはテストです」

文字列の最初の単語を大文字にする 2 番目の解決策

「これはテストです」→「これはテストです」

function capitalize(str) {

    const word = [];

    for(let char of str.split(' ')){
        word.push(char[0].toUpperCase() + char.slice(1))
    }

    return word.join(' ');

}

 capitalize("this is a test");

それは次のようになります:「これはテストです」

于 2018-07-15T06:52:54.127 に答える
1

ここに私が使用する機能があります:

capitalCase(text: string = 'NA') {
    return text
      .trim()
      .toLowerCase()
      .replace(/\w\S*/g, (w) => w.replace(/^\w/, (c) => c.toUpperCase()));
  }

console.log('this cApitalize TEXt');
于 2020-12-22T07:13:58.820 に答える
1

以下のように正規表現を使用できます。

return string1.toLowerCase().replace(/^[a-zA-z]|\s(.)/ig, L => L.toUpperCase());
于 2020-10-23T19:26:26.917 に答える
-8

コードを少し変更する場合があります。この関数ですべて大文字の文字列を実行しても、何も起こらないことがわかりました。だから...ここに私のちょっとしたビットがあります。最初に文字列を強制的に小文字にします。

String.prototype.capitalize = function(){
    return this.toLowerCase().replace( /(^|\s)([a-z])/g , function(m, p1, p2) {
        return p1 + p2.toUpperCase();
    });
}
于 2011-01-18T17:14:17.667 に答える