ホームページ  >  記事  >  ウェブフロントエンド  >  js replace() あなたの知らないテキスト置換_JavaScript スキル

js replace() あなたの知らないテキスト置換_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 18:32:121097ブラウズ
コードをコピー コードは次のとおりです:

//単語から単語を単語に変換します
関数Camelize( s){
return s.replace(/-(w)/g, function(strMatch, p1){
return p1.toUpperCas();
}); >

ここでは、テキスト置換関数 replace が適用されます。その一般的な構文はおそらく誰にとっても馴染みのあるものです。次に、その 2 番目のパラメーターが関数である場合の状況を紹介します。

今日この関数をグループに投稿したところ、誰かがすぐに反応して、上記の正規表現が間違って書かれていると言いました "

/

-(w)/ g" すると、彼は自分の疑問がこの "()" に関するものであることをすぐに理解しました。実際、この括弧は非常に必要です:

(x) は x と一致し、x を $1、$2...$9 という名前の変数に保存します。実際、後続の呼び出しを容易にするためにインデックスが追加されます。これらの括弧を追加しないと、エラーが発生します:



それでは、関数のパラメータの意味を紹介しましょう。なぜこの関数は指定された機能を実現できるのでしょうか?

ECMAScript v3 では、replace() メソッドのパラメータ置換には文字列ではなく関数を使用できると規定されています。この場合、関数は一致するたびに呼び出され、関数が返す文字列が置換テキストとして使用されます。この関数の最初のパラメータは、パターンに一致する文字列です。次の引数は、パターン内の部分式に一致する文字列であり、そのような引数は 0 個以上存在できます。次のパラメータは、一致が発生する stringObject 内の位置を宣言する整数です。最後のパラメータは stringObject 自体です。

これは少し面倒に思えます。例:


ラクダ化(www-rrr);



つまり、それを呼び出します。実際、上記の strMatch 値は -r であり、これは通常のパターンに一致する文字列です (この関数の最初のパラメーターは、パターン

に一致する文字列です)。 、 上記の p1 の値は r で、- の直後に続く r を指します (

次のパラメータは、パターン

の部分式に一致する文字列です)。これが指定するインデックスです ——「(w)」。 わかりました、この関数が将来何をするかは明らかだと思います。

追加の提案は大歓迎です。

s.replace(/-([a-z])/ig, function(all, Letter) { return Letter.toUpperCase(); }); w には数字と _ も含まれます


[Ctrl A すべて選択 注: 外部 Js を導入する必要がある場合は、更新して実行する必要があります ]
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。