ホームページ > 記事 > ウェブフロントエンド > js replace() あなたの知らないテキスト置換_JavaScript スキル
今日この関数をグループに投稿したところ、誰かがすぐに反応して、上記の正規表現が間違って書かれていると言いました "
/-(w)/ g" すると、彼は自分の疑問がこの "()" に関するものであることをすぐに理解しました。実際、この括弧は非常に必要です:
(x) は x と一致し、x を $1、$2...$9 という名前の変数に保存します。実際、後続の呼び出しを容易にするためにインデックスが追加されます。これらの括弧を追加しないと、エラーが発生します:
それでは、関数のパラメータの意味を紹介しましょう。なぜこの関数は指定された機能を実現できるのでしょうか?
ECMAScript v3 では、replace() メソッドのパラメータ置換には文字列ではなく関数を使用できると規定されています。この場合、関数は一致するたびに呼び出され、関数が返す文字列が置換テキストとして使用されます。この関数の最初のパラメータは、パターンに一致する文字列です。次の引数は、パターン内の部分式に一致する文字列であり、そのような引数は 0 個以上存在できます。次のパラメータは、一致が発生する stringObject 内の位置を宣言する整数です。最後のパラメータは stringObject 自体です。
これは少し面倒に思えます。例:
に一致する文字列です)。 、 上記の p1 の値は r で、- の直後に続く r を指します (
次のパラメータは、パターンの部分式に一致する文字列です)。これが指定するインデックスです ——「(w)」。 わかりました、この関数が将来何をするかは明らかだと思います。
追加の提案は大歓迎です。。
s.replace(/-([a-z])/ig, function(all, Letter) { return Letter.toUpperCase(); });
w には数字と _ も含まれます