1

このコードは、rawdata から MIME タイプを取り除くために使用されますが、どのように機能するのか理解できません

 content.replace(/^[^,]*,/ , '')

それはJavaとはかなり違うようです....どんな助けでも大歓迎です。

4

3 に答える 3

2

mime-typeは、おそらくコンマで区切られ、,生データの先頭にあります。この正規表現によるとtake everything from the beginning (^) that is NOT a comma ([^,]*) (the star makes it as many characters until there is a comma) and take the comma itself (,). Then replace it by nothing (''). 、これは文字列の先頭にある必要があるという先頭^でマークされているため、最初に表示されるだけです。

于 2012-07-04T06:48:06.260 に答える
2

最初に知っておく必要があるのは、JavaScriptにはスラッシュのペアで構成された正規表現リテラルがあるということです。つまり"..." 、文字列のように/.../、正規表現です。これが、Java正規表現と比較してコードが示す唯一の違いです。

次に、[abc]正規表現内で文字クラスと呼ばれ、 「 abまたはから1文字」を意味しcます。逆に、[^abc]は否定された文字クラスであり、「、またはを除く 1文字」を意味します。abc

つまり、サンプルは次のことを意味します。

/     # Start of regex literal
^     # Start the match at the start of the string
[^,]* # Match any number of characters except commas
,     # Match a comma
/     # End of regex literal
于 2012-07-04T06:49:51.083 に答える
1

通常の式は、2つのスラッシュの間のテキストです。最初のカラット(^)は文字列の先頭を意味し、角かっこは文字クラスを意味し、角かっこ内のカラットはコンマ以外の文字を意味し、終了後はアスタリスクを意味します角かっこは、文字クラス(これもコンマ以外の任意の文字)で定義された0個以上の文字と一致することを意味し、最後のコンマは、この後のコンマと一致することを意味します。次に、replace関数で使用されるため、一致する結果は2番目のパラメーター(この場合は空の文字列)に置き換えられます。

基本的に、「content」変数の最初のコンマまでの最初の文字と一致し、空の文字列に置き換えられます。

于 2012-07-04T06:48:28.703 に答える