シャローコピー
オブジェクトは角括弧で横断することができます。
最外層のみをコピーします。
for (var key in obj) { newObj[key] = obj[key]; }
新しいアプローチをES6:
Object.assign(newObj, obj)
;
ディープコピー
いずれかのオブジェクトは、アレイを横切ることができる横切るため、キーが配列の添字であります
リカーシブ
プロセス内のオブジェクトのコピーが、プロパティは、複合データ型であることが分かった場合、機能は、トラバース直接割り当て基本的なデータタイプを知ることが、再帰的にトラバース続けます。
function copy(newObj, obj) { for (var key in obj) { if (obj[key] instanceof Array) { newObj[key] = []; copy(newObj[key], obj[key]); } else if(obj[key] instanceof Object) { newObj[key] = {}; copy(newObj[key], obj[key]) } else { newObj[key] = obj[key]; } } }
正規表現
マッチする文字列のための式
役割:
- 検索キーワード
- 敏感な文字をフィルタリング
- フォームバリデーション
特徴:
- 柔軟性、ロジックと機能は非常に強力です。
- 文字列はすぐに複雑な制御を非常に簡単な方法に到達することができます
使用します。
正規表現を作成します
方法1:オブジェクトをインスタンス化することによって正則を作成します。
var reg = new RegExp(/abc/);
第二の方法:通常のリテラルを作成することによって、
var reg = /123/;
正規表現をテストします
- 試験()通常のオブジェクトメソッドは、文字列が一致するか否かを検出するためのルールは、テスト文字列パラメータをtrueまたはfalseを返します。
reg.test(str);
定期的な構図
- (メタキャラクタ)の単純な文字や特殊文字を提起
ボーダー文字
- 文字の位置を求めるために、二つの主要な文字があります
- 試合だけでは終わりの始まりである場合。
- しかし、一緒に使用する場合は、完全一致:
- / ^ Abcの$ /:唯一のABCと一致
- ^:(開始誰に)テキストマッチングの行の先頭を示します
- $は:行のテキストマッチング終了を示します(誰に終わり)
文字クラス
- 大括弧[]
- ライン上の一致限り多くの一つ、
- / ^ [ABC] $ /
- 1つを選択
- またはbまたはcのみ
- / ^ [AZ] $ /
- 小文字のみができる、あなただけのものを選ぶことができ、26個の文字からいずれかを選択します。
- / ^ [A-ZA-Z] $ /ケース
- / ^ [A-ZA-Z0-9] $ /ケース、0-9
- / ^ [A-ZA-Z0-9 _-] $ /の場合、番号0-9、及び鎖線下線を含みます
/^[^a-zA-Z0-9_-]$/
括弧で^否定試合を入れて最初に偽である、ないルールはで真であります
- 大括弧[]
数量詞のシンボル
- パターンが出現する回数を設定するために使用します。[AZ]数量詞の文字。
*
繰り返しの0回以上+
一回または複数回繰り返します?
0回または1回{n}
繰り返さn回以上- {N} n回又は複数回
{n,m}
mまで繰り返しn回
ブラケットの概要
- サスペンダー
- カッコ内の
- 括弧
事前定義されたクラス
- \ dは0-9
- \ Dは、0-9以外のすべての文字にマッチします
- \ Wはいずれかと一致します
- \ W文字、数字、すべての下線文字に加え、
- \ Sは空白に一致します
- \ Sは非空白文字にマッチします
置き換えます
- 交換してください()
- 文字列のメソッド
- /式/ [修飾子]
- G:グローバルマッチング
- I:ケースを無視
- GI:グローバル・ケースを無視