2012-08-23 9 views
7

数字を許可するための正規表現を書こうとしています(開始または終了にできない) sayパターン:02-0402許容できるが、 パターン:--または-または-02または04-または02-04-06は受け入れられない数字を許可するRegexと中間に1つのハイフン

私はこのような何かを試してみましたが、これができるようになる - 初めにも、複数の許可 -

'/^[0-9 \-]+$/' 

私は正規表現でそれほど良くはないので、少しの説明が本当に役に立ちます。

EDIT:これであなた再びバグに申し訳ありませんが、私は無効とみなされるべき唯一の2桁(123から346)であることが数値を必要としています。

答えて

12

これを試してください。

/^\d{1,2}(-\d{1,2})?$/ 

一又は二桁、必要に応じて、続いて、(ハイフンは、1つのまたは2つの数字が続く)

+1

私と同じ答えですが、あなたは私にそれを打ちました。だから、私は説明を追加し、upvoted、自分自身を削除しました。 – slim

+0

@slimの説明ありがとうございました –

+0

この問題をもう一度お詫び申し上げますが、2桁(123-346)の数字が無効と見なされる必要があります。 –

5

かなり簡単:再び少なくとも一つの数字が続くハイフンマイナス(-)を含む任意のグループ、続い

^\d+(-\d+)?$ 

少なくとも一方(+)桁(\d)。

+0

これはハイフンがあなたの式によって要求されるので、 '02'を無効にします –

+0

これは' 02'にマッチしません –

+0

ああ、申し訳ありません。ハイフンマイナスはオプションであると言った部分を見落とした。今修正されました。この要求は、ハイフン・マイナスのようなパターン・サウンドのすべての言葉の説明が必要とされるので、疑問には少し難解です。 – Joey

2

以下に

を動作するはずだけそのパターンを含む文字列について
^(\d{2}-)?\d{2}$ 

2桁のグループの後に、マイナスのない2桁のグループのマイナスの終了が続きます。

関連する問題