2013-07-25 40 views
0

我想出如何在文本框中,鍵入數字僅使用此功能文本框只有在格式號####。##

function isNumberKey(evt) { 
     var charCode = (evt.which) ? evt.which : event.keyCode; 
     if (charCode != 46 && charCode > 31 
     && (charCode < 48 || charCode > 57)) 
      return false; 

     return true; 
    } 

但我只希望跟隨## ##。##在特定的語法中,這樣它就不會在提交時在oracle中引起錯誤。

我不擅長正則表達式,並想知道是否有人能指出我的方向或幫助我。

+2

不要忘記使用'正則表達式'或'自動機'來檢查服務器端的格式。不要只信任JS來完成這項工作。 –

回答

0

這個正則表達式將匹配你提供的格式。

var matches = str.match(^\d{4}\.\d{2}) 
if (matches) //matches will be no if no matching values are returned. 
{ 
    //You have valid input 
} 
+0

有沒有辦法在javascript中應用這個正則表達式?我知道如何檢查服務器端但不是客戶端 – Jake

+0

您可以通過對正在文本框中檢查的字符串執行str.match(^ \ d {4} \。\ d {2})來應用它。看到這個http://www.w3schools.com/jsref/jsref_match.asp –

+0

我試着做這個功能,但它似乎並不喜歡它。它似乎突出了^ \和\\ s。我不確定hte正則表達式在javasascript中是不同的 – Jake

0

使用MaskedEdit來執行您的模式。它非常容易。

<ajaxToolkit:MaskedEditExtender 
    TargetControlID="TextBox2" 
    Mask="####.##" 
    MessageValidatorTip="true" 
    OnFocusCssClass="MaskedEditFocus" 
    OnInvalidCssClass="MaskedEditError" 
    MaskType="Number" 
    InputDirection="RightToLeft" 
    AcceptNegative="Left" 
    DisplayMoney="Left" 
    ErrorTooltipEnabled="True"/>