2011-01-25 6 views
0

テキストボックスでクリケットオーバーを検証するためにどの正規表現を使用すべきか教えてください。 それは5.1、5.2,5.3,5.4,5.5ことができますが、それは0.5より大きい分数の値を含むべきではないように、また、値が数値でなければなりませんのみ(floatとint型)クリケットオーバーの正規表現を作成する方法

おかげ

答えて

1

あなたは、この使用する必要があります:あなたはまた、代わりに0.2.2のような画分をしたい場合は

^[0-9]+(\.(50*|[0-4][0-9]*))?$ 

を、これを使用する:0

^[0-9]*(\.(50*|[0-4][0-9]*))?$ 
を説明:たとえば /[0-9]+(\.[0-5])?/.test("0.8")が真生じ、ので

^    beginning of the string 
[0-9]*   repeat 0 or more digits 
(
    \.    match the fraction point 
    (
    50*   match .5, or .5000000 (any number of zeros) 
    |   or 
    [0-4][0-9]* anything smaller than .5 
) 
)?    anything in this parenthesis is optional, for integer numbers 
$    end of the string 

あなたのバージョン、[0-9]+(\.[0-5])?は、残念ながら動作しません。

+0

クイック返信ありがとう。そのうまくいっているが問題に直面している。それは私に "66.555"のような価値を入力することを可能にします。私たちが知っているように、オーバーは分数値として1つの値を含むべきです。 –

+0

私はあなたの表現を変更し、 "[0-9] +(\。[0-5])?"うまくいきます。その正しいことを確認してください。ありがとう –

+0

@Rajesh Rolen- DotNet Developerが更新されました。もう少し複雑ですが、 '0.5000000'、' 0.4999'、.5'、 '5'などほとんどすべてで動作します。 –

2

これを試してみてください。

<script type="text/javascript"> 
var testString = '5.4'; 
var regExp = /^\d+(\.[1-5])?$/; 
if(regExp.test(testString)) 
{ 
// Do Something 
} 
</script> 
+1

テストでは、50以上のオーバー(grins :)があります。 –

+0

投稿を更新しました。 OPがマッチ形式(1日、テスト、20〜20)を指定できる場合は、同じものに改造することができます。 – Chandu

+0

サルマンの本当のヒーロー.. –

0
<script type="text/javascript"> 
var pattern = /^\d+(\.[0-5])?$/; 
var overs = [ 
'0', 
'0.0', 
'1.1', 
'1.2', 
'1.5', 
'1.6', 
'2', 
'2.0', 
'2.10', 
'50', 
'50.1', 
'100' 
]; 
for (var i = 0; i < overs.length; i++) { 
    var over = overs[i]; 
    console.log(over + (pattern.test(over) ? ' is valid' : ' is in-valid')); 
} 
</script> 
+0

' 2.10は有効です ' –

+0

うわー。それは*です。参照:http://en.wikipedia.org/wiki/Over_%28cricket%29 –

関連する問題