適用シナリオ:バックエンドに渡されるパラメータがキャメルケースで命名され、エコー時にアンダースコアが使用されることがあります。この場合、キー値を変更する必要があります。 方法 1: 正規表現 (推奨)水平線が下向きのキャメルケース: 関数toLowerLine(str) { var temp = str.replace(/[AZ]/g, 関数(一致) { "_" + match.toLowerCase() を返します。 }); if(temp.slice(0,1) === '_'){ //最初の文字が大文字の場合、置換を実行するときに余分な _ が追加されるので、ここで削除する必要があります temp = temp.slice(1); } 温度を返します。 }; console.log(toLowerLine("TestToLowerLine")); //test_to_lower_line console.log(toLowerLine("testToLowerLine")); //test_to_lower_line 下の水平線がキャメルケースになります。 関数 toCamel(str) { str.replace(/([^_])(?:_+([^_]))/g、関数($0、$1、$2)を返します{ $1 + $2.toUpperCase() を返します。 }); } console.log(toCamel('test_to_camel')); //testToCamel 方法2: 配列のreduceメソッドを使用する水平線が下向きのキャメルケース: 関数doLowerLine(前の値、現在の値、現在のインデックス、配列){ if(/[AZ]/.test(currentValue)){ 現在の値 = 現在の値.toLowerCase(); if(現在のインデックス===0){ 前の値 + 現在の値を返します。 }それ以外{ 前の値 + '_' + 現在の値を返します。 } }それ以外{ 前の値 + 現在の値を返します。 } } 関数toLowerLine(arr){ if(arr型 === '文字列'){ arr = arr.split(''); } arr.reduce(doLowerLine,'') を返します。 } var a = 'TestToLowerLine'; var res1 = toLowerLine(a); // テスト_to_lower_line var res2 = [].reduce.call(a,doLowerLine,''); //test_to_lower_line 下の水平線がキャメルケースになります。 関数doCamel(前の値、現在の値、現在のインデックス、配列){ 現在の値 === '_' の場合{ previousValue + currentValue.toUpperCase() を返します。 }それ以外{ 前の値 + 現在の値を返します。 } } 関数 toCamel(str) { if(typeof str === '文字列'){ str = str.split(''); // 文字配列に変換} str.reduce(doCamel) を返します。 } console.log(toCamel('test_to_camel')); //TestToCamel 方法3: 配列のマップメソッドを使用する水平線が下向きのキャメルケース: 関数doLowerLine(val, index, arr){ if(/[AZ]/.test(val)){ if(インデックス===0){ val.toLowerCase() を返します。 }それ以外{ '_'+val.toLowerCase() を返します。 } }それ以外{ 戻り値: } } 関数toLowerLine(arr){ if(arr型 === '文字列'){ [].map.call(arr,doLowerLine).join('') を返します。 // Array.prototype.map.call(arr, doLowerLine).join(''); }それ以外{ arr.map(doLowerLine).join('') を返します。 } } var a = 'TestToLowerLine'; var res1 = [].map.call(a,doLowerLine).join(''); //test_to_lower_line var res2 = toLowerLine(a); // テスト_to_lower_line JS 文字列のアンダースコア命名とキャメルケース命名の変換1. キャメルケースからハイフンへ: var s = "fooStyleCss"; s = s.replace(/([AZ])/g,"-$1").toLowerCase(); //正規表現を使用して置換します。簡潔で明確、素晴らしい 2. こぶを回す var s1 = "foo-style-css"; s1 = s1.replace(//-(/w)/g, 関数(すべて, 文字){ letter.toUpperCase() を返します。 }); //この部分 2 はよくわかりません。 それで自分で書いてみました。^_^、これはわかりやすいですが、コードが少し多くなっています。 var s = "スタイルシートベース"; var a = s.split("-"); var o = a[0]; for(var i=1;i<a.length;i++){ o = o + a[i].slice(0,1).toUpperCase() + a[i].slice(1); } 今度は正規表現を使用して、別のコードを記述します。 var s1 = "スタイルシートベース"; s1 = s1.replace(//-(/w)/g, function(x){return x.slice(1).toUpperCase();}); js アンダーラインとキャメルケース間の変換の実装(複数の方法)に関するこの記事はこれで終わりです。js アンダーラインとキャメルケース間の変換に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: HTML テーブルタグチュートリアル (12): 境界線スタイル属性 FRAME
>>: Rabbitmq heartbea ハートビート検出メカニズムの原理の分析
目次1. リストの走査2. Vueにおけるキーの役割3. リストフィルタリングこの記事では、Vue ...
序文Vue(発音は /vjuː/、view に似ています)は、ユーザーインターフェイスを構築するため...
目次再帰とは何ですか?また、どのように機能しますか? 1. 合計(1)デジタル加算(2)配列の和2....
MACでMySQLの初期パスワードを忘れた場合の解決策を参考までに共有します。具体的な内容は次のとお...
nginx の default_server ディレクティブは、server_name と一致しない...
この記事では、例を使用して MySQL 正規表現 (regexp および rlike) の検索機能を...
準備1. 仮想マシンを起動する2. gitツールルートアカウントでログインルートアカウントを使用して...
仮想マシンに独自の LAN IP を持たせたいので、テストを容易にするためにブリッジを使用します。 ...
Docker を使用して Angular プロジェクトをデプロイする方法は 2 つあります。1 つは...
1. <dl>はリストを定義し、<dt>はリスト内の項目を定義し、<d...
よく知らないサーバーの場合や、かなり前にインストールした場所を忘れてしまった場合、構成ファイルの場所...
通常、フィールド値を更新するには次の SQL ステートメントを使用します。 mytable を更新し...
目次解決策1: レプリカを再構築する前提条件アドバンテージ欠点手順マスター奴隷解決策2: データ修復...
CSS には多くの属性があります。特に複数の値を設定する必要がある属性は、長期間使用しないと忘れられ...
(1)各HTMLタグには属性スタイルがあり、CSSとHTMLを組み合わせている。 <div s...