JavaScript文字列をすべて小文字に変換しますか?


1289

JavaScript文字列値をすべて小文字に変換するにはどうすればよいですか?

例:「あなたの名前」から「あなたの名前」

回答:


1682
var lowerCaseName = "Your Name".toLowerCase();

27
これも考慮して、「toLowerCaseは文字列str自体の値に影響を与えません」。これは、ここでマニュアルの拠点となってdeveloper.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
ケーリーBondoc

toLowerCase()関数の時間と空間の複雑さは何ですか?
Ramzan Chasygov

7
@RamzanChasygov非常にインテリジェントな馬鹿によってJavaScriptエンジンがプログラムされていない限り、JavaScriptで再実装するよりもO(n)で高速です。
wizzwizz4

1
toLowerCase()変数を呼び出すより安全な方法は次のとおり(varName || '').toLowerCase()です。
Dinesh Pandiyan 2018

413

StringオブジェクトのtoLowerCaseまたはtoLocaleLowerCaseメソッドを使用します。違いは、ユーザー/ホストの現在のロケールが考慮されることです。ECMAScript言語仕様(ECMA-262)の 15.5.4.17に従って、…toLocaleLowerCasetoLocaleLowerCase

…toLowerCaseとまったく同じように機能しますが、その結果は、ロケールに依存しない結果ではなく、ホスト環境の現在のロケールに対して正しい結果を生成することを目的としています。その言語の規則が通常のUnicodeケースマッピングと競合するいくつかのケース(トルコ語など)でのみ違いがあります。

例:

var lower = 'Your Name'.toLowerCase();

また、toLowerCaseおよびtoLocaleLowerCase関数は、任意の値型で一般的に機能するように実装されています。したがって、Stringオブジェクト以外でもこれらの関数を呼び出すことができます。これを行うと、結果の文字列値の各文字の大文字と小文字を変更する前に、文字列値に自動的に変換されます。たとえば、次のような日付に直接適用 できますtoLowerCase

var lower = String.prototype.toLowerCase.apply(new Date());

これは実質的に以下と同等です:

var lower = new Date().toString().toLowerCase();

2番目の形式は、その単純さと読みやすさのために一般的に推奨されます。以前のバージョンのIEでは、最初のバージョンにはnull値を処理できるという利点がありました。適用toLowerCaseまたはtoLocaleLowerCaseオンの結果nullが得られますnull(エラー状態ではありません)。


22
+1は、この答えはより多くの道に値するまったく何も説明しなかっ受け入れ答えよりもアップ投票し、私はそれを意味する
Frederik.L

String.prototype.toLowerCase.apply(null)戻る部分nullが正しくないようです。これは、スローTypeError、私はそれをしようとすると、例外を。
JohnnyHK 2013

2
@JohnnyHKそうですね。そのビットは、回答が最初に投稿されたときにテストされた以前のバージョンのIEで真実でした。フィードバックを反映するように回答を更新しました。ありがとう。
Atif Aziz

29

はい、JavaScriptのすべての文字列にtoLowerCase()は、すべて小文字の古い文字列である新しい文字列を返すメソッドがあります。古い文字列は変更されません。

したがって、次のようなことができます:

"Foo".toLowerCase();
document.getElementById('myField').value.toLowerCase();

20

toLocaleUpperCase()または小文字の関数は、本来あるべき動作をしません。

たとえば、私のシステム、Safari 4、Chrome 4 Beta、Firefox 3.5.xでは、トルコ語の文字列が正しく変換されません。

ブラウザは、navigator.languageにそれぞれ「en-US」、「tr」、「en-US」として応答します。

しかし、私が知る限り、ブラウザでユーザーのAccept-Lang設定を取得する方法はありません。

すべてのブラウザーをtr-TRロケール優先として構成しましたが、問題はChromeだけです。

これらの設定はHTTPヘッダーにのみ影響すると思いますが、JSを介してこれらの設定にアクセスすることはできません。

ではMozillaのドキュメントには、現在のロケールを尊重しながら、文字列内の文字が...に変換されている」と言います。

ほとんどの言語では、これは...と同じ結果を返します。

私はそれがトルコ語に対して有効であると思います、それはそれがenまたはtrとして構成されていることと違いはありません。

トルコ語では、「DİNÇ」を「dinç」に、「DINÇ」を「dınç」に、またはその逆に変換する必要があります。


Accept-Languageおよびnavigator.language2つの完全に異なる設定です。Accept-LanguageWebページで受け取りたい言語についてユーザーが選択した設定を反映します(この設定は残念ながらJSにアクセスできません)。navigator.languageインストールされているWebブラウザーのローカリゼーションを反映しているだけであり、通常は何にも使用しないでください。これらの値はどちらも、システムロケールとは無関係です。システムロケールは、何をするかを決定するビットtoLocaleLowerCase()です。これは、ブラウザの設定の範囲外のOSレベルの設定です。
ボビンス

Accept-Languageとnavigator.languageは何らかの形で関連しているはずだと思いました。ブラウザーの設定画面でデフォルトの言語を順番に構成できますが、どのnavigator.languageが応答するかを構成することはできません。ロケールパラメータを取得する関数toLowerCase()の別の形式があるはずだと思います。
sanilunlu 2011年

ええ、本当にあるはずです。残念ながら、JavaScriptのロケール関連の機能は弱く、仕様が不十分で、一般に信頼性が低くなっています。
ボビンス、2011年

15

の単なる例でtoLowerCase()ありtoUpperCase()、プロトタイプはまだ利用できないtoTitleCase()か、toPropperCase()

String.prototype.toTitleCase = function() {
  return this.split(' ').map(i => i[0].toUpperCase() + i.substring(1).toLowerCase()).join(' ');
}

String.prototype.toPropperCase = function() {
  return this.toTitleCase();
}

var OriginalCase = 'Your Name';
var lowercase = OriginalCase.toLowerCase();
var upperCase = lowercase.toUpperCase();
var titleCase = upperCase.toTitleCase();

console.log('Original: ' + OriginalCase);
console.log('toLowerCase(): ' + lowercase);
console.log('toUpperCase(): ' + upperCase);
console.log('toTitleCase(): ' + titleCase);

2018年に編集


1
toPropperCaseする必要がありますtoProperCase
Ian

-1このコードは、ASCII以外のすべてのエラーで非常に発生しやすくなります。たとえば、ドイツ語で「diestraße」と入力すると、タイトルケースとして「Die Strasse」が表示されます。正解は「DieStraße」です。それとは別に、プロトタイプ汚染は今日では嫌われています。
ComFreek

13

私はたくさんの人がしていることを注意を払って見ているためstrtolower()、JavaScriptで。彼らは他の言語と同じ関数名を期待しているので、この投稿はここにあります。

ネイティブ JavaScript関数の使用をお勧めします

"SomE StriNg".toLowerCase()

これは、PHPの機能とまったく同じように動作する関数です(PHPコードをjsに移植する場合)

function strToLower (str) {
    return String(str).toLowerCase();
}

何の+ ''ため?
UpTheCreek 2013年

8

この関数はSTRINGオブジェクトでのみ機能することに注意してください。

たとえば、プラグインを使用していて、「extension.tolowercaseは関数ではありません」というJSエラーが発生する理由がわかりませんでした。

 onChange: function(file, extension)
    {
      alert("extension.toLowerCase()=>" + extension.toLowerCase() + "<=");

「extension.toLowerCaseは関数ではありません」というエラーが発生したため、このコードを試してみたところ、問題が明らかになりました。

alert("(typeof extension)=>" + (typeof extension) + "<=");;

出力は "(typeof extension)=> object <="でした-ああ、私は入力用の文字列変数を取得していませんでした。修正は簡単ですが、気の毒なことを文字列に強制するだけです!:

var extension = String(extension);

キャスト後、extension.toLowerCase()関数は正常に機能しました。


8

メソッドまたは関数:toLowerCase()、toUpperCase()

説明:これらのメソッドは、文字列またはアルファベットを小文字から大文字またはその逆にカバーするために使用されます。例:「and」から「AND」。

大文字への変換:-サンプルコード:-

<script language=javascript>
var ss = " testing case conversion method ";
var result = ss.toUpperCase();
document.write(result);
</script>

結果:テストケースの変換方法

小文字への変換:-サンプルコード:

<script language=javascript>
var ss = " TESTING LOWERCASE CONVERT FUNCTION ";
var result = ss.toLowerCase();
document.write(result);
</script>

結果:小文字の変換関数のテスト

説明:上記の例では、

toUpperCase() method converts any string to "UPPER" case letters.
toLowerCase() method converts any string to "lower" case letters.


2

オプション1:toLowerCase();の使用

var x = "ABC";
x=x.toLowerCase();

オプション2:独自の関数を使用する

 function convertToLowerCase(str) {
      var result = ''

      for (var i = 0; i < str.length; i++) {
        var code = str.charCodeAt(i)
        if (code > 64 && code < 91) {
          result += String.fromCharCode(code + 32)
        } else {
          result += str.charAt(i)
        }
      }
      return result
    }

それを次のように呼びます:

x= convertToLowerCase(x);

最初のオプションはすでに他の回答で言及されていますが、2番目のオプションは非ASCIIのすべてに対してひどく失敗します。
ComFreek


-1

自分で作成したい場合:

function toLowerCase(string) {

let lowerCaseString = "";

for (let i = 0; i < string.length; i++) {
    //find ASCII charcode
    let charcode = string.charCodeAt(i);

    //if uppercase
    if (charcode > 64 && charcode < 97){
        //convert to lowercase
        charcode = charcode + 32
    }

    //back to char
    let lowercase = String.fromCharCode(charcode);

    //append
    lowerCaseString = lowerCaseString.concat(lowercase);
}

return lowerCaseString

}


-2

JavaScript文字列に対して組み込みの.toLowerCase()メソッドを使用できます。例:var x = "Hello"; x.toLowerCase();


1
これは、受け入れられた回答から適切なコード形式を除いたものと同じです
reggaeguitar

-4

試す

<input type="text" style="text-transform: uppercase">  //uppercase
<input type="text" style="text-transform: lowercase">  //lowercase

デモ-JSFiddle


7
いいですが、特にjavascriptishではありませんか?
一部の非記述子ユーザー

OPは、@ some-non-descript-userが言ったことに基づいて、JavaScriptソリューションを探しています。この回答は有効ですが、定義されたパラメーターに従って、OPの質問には回答しません。
boxspah 2016

ニース... CSSメソッドを探していて、このページに
アクセスしました
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.