2012-03-01 23 views
1
var rxDatePattern = new RegExp("^(?:\\d*\\.\\d{" + no + "})$"); 

についての説明はdecimal.The値を変数なしに格納された後に3桁の数値を受け入れるために使用して、通常のEXPパターンイムです.... これが正常に動作している、しかし、私種類はパターンを理解していない、誰も私のパターンを助けることができます..正規表現パターン

+0

あなたはそれを周りいじるする場合:http://regexpal.com/ –

答えて

3

^$は、それぞれ文字列の開始と終了のアンカーです。この場合、部分文字列の代わりに正規表現が完全な文字列にマッチします。

\dは、は、*数値限定子のために、少なくとも0桁の数字です。その後、ドット(.)と可変桁数を再度照合するリテラルドット、つまり、一致します。 \d{3}

\dの代わりに\\dが正規表現に含まれる理由は、\もJavaScriptの文字列のエスケープ文字です。正規表現エンジンは、実際のバックスラッシュを見ているので、それで、あなたは一度バックスラッシュをエスケープする必要があり、文字列に含まれている正規表現でリテラルのバックスラッシュを含めることができます。私はかなりなぜ表示されていないものの

が最後にこのすべては、非キャプチャグループ (?:...)で囲まれています。この場合は効果がなく、省略することもできます。

だから、= 2 noのために、これは

1.23 
123.45 
.00 

なく

.123 
1.123 
5.3 
2 
1. 
+0

ジョーイおかげでちょっと!!!! – freebird

0

のような文字列D *は "前に多くの数字または0を" と言うことです最初の\のような文字列にマッチします。 "" \ d {3}(3はvar noの値)は、 "3"後に "。" "と表示されます。

開始"^"と終了" $ "は、このパターン "

+0

ちょっと恐らくは「非捕らえる、私はどちらか分からない – freebird

+0

...それは正しい方法です,,私は\\ Dではなく、\ dの使用されている理由を理解することはできない,,,お返事ありがとうございましたパターンの前に設定されているグループ」(?:...) – artragis

+0

@freebirdは: '' \\ '': '' \ ''文字列にあなたがそれをエスケープする必要がありますを取得します。したがって、 '' \\ d''は '' \ d''という文字列を作成し、それは正規表現のコンストラクタに渡されます。 '' \ d''は、文字列 '' d''だけで文字列を作ります。 – pimvdb