2012-04-21 15 views
2
str = "33d4m"; //d for days and h for hours and m for min 
patt=/^[1-9]+d/i; 
result=patt.test(str); 
document.write("Returned value: " + result); 

はすなわち、Dの前に1桁がある場合にのみtrueを返す結果;未満10日は残りまたは数時間は残りの私はJavascriptの正規表現まさに私が欲しい一桁パターン

str = "23h5m" 
にもtrueを返したいよう

dの前に2桁の場合はfalseを返します。
hの前の2桁がtrueの場合は、それを返します。
ここで私は間違っています。

答えて

2

あなたはこれを試すことができます:それは意味

patt=/^\d{1,2}h|^\dd/i 

Match 1 or 2 digits followed by the literal 'h' 
OR match a single digit followed by the literal 'd' 
+0

ありがとうございます。 –

+0

@ワシムありがとう、私はちょうどそれを再編集しました、 '[1-9]'文字セットを '\ d'数字に変更しました。それ以外は' 20h5M'がマッチしないからです。 – Robbie

+0

私は正規表現を理解していますが、正規表現の練習が不足しているため作成できません。再度、感謝します –

1

は、私はこのような何かが働くだろうと思う:

patt=/^[1-9][dh]/i 
+0

質問は –

+0

はあなたには、いくつかのサンプル例を置くことができます変更されます。どれくらいの時間が「数時間ですか?」 – Joseph

+0

時間は明らかに23より大きくなりません。 –

1

プラスは、「少なくとも1つ」を意味する - それを削除します。 すべて数字に[0-9]を使用することもできますが、それはちょうど推測に過ぎません。

patt=/^[1-9]d/i; 
+0

以上であるためです。str = "23h34M"の場合はtrueも返す必要があります。それは可能です –

+0

このコメントは意味がありません、それの間に相関はありません33d4Mのfalseを返しますが、23h34Mの真です。あなたはパターンが必要な正規表現の仕事を持っている...パターンは何ですか? –

+0

パターンは、[1-9] dまたは[1-9] [1-9] hであり、基本的に日数はd、時間はhである。日数が10時間以内、数時間未満の場合は返品が必要 –

関連する問題