2012-11-07 41 views
1

我需要一個驗證文本框,接受像這樣$ 250.00這裏是'$'只接受一次,然後從未接受'$'以及'。'(點)。在JavaScript中驗證文本框

+0

有你嘗試過什麼東西? –

+1

正則表達式是你的朋友。 http://www.regular-expressions.info – techfoobar

回答

0

你可以使用一個masked input例如 你的面具將

$('#input').mask('$9?.99'); 
0

你可以這樣做:

var x = document.getElementById('your-text-box').value; 

if(x.match(/^\$[0-9]+\.[0-9]+$/) == null) { 
    // invalid 
} 
else { 
    // valid 
} 

正則表達式/^\$[0-9]+\.[0-9]+$/比賽任何字符串符合下列限制

  • 應該用$
  • 開始應該有$
  • 1 or more numbers第一組數字
  • 如若.
0

1 or more numbers到底是jQuery的一個選項後,應該有一個.

這是一個jQuery解決方案。首先,我不會驗證期望用戶放置'$'。我會把它放在表格外面,讓人們輸入金額。這很奇怪,但我想我沒有真正瞭解你在做什麼。見Jquery validation

$("#myform").validate({ 
    rules: { 
    field: { 
     required: true, 
     digits: true 
    } 
} 
}); 

這是使用digits只允許數字。否則,如果您確實需要$,那麼您需要創建一個custom validation rule

0
<!-- wherever your jquery file is -->  
<script src="../../jquery.min.js"></script> 
<input type="text" id="cost"><input type="button" id="check" value="Check!"> 
<script> 

// jquery solution 

$(document).ready(function(){ 
    $('#check').click(function(){ 
      var cost = $('#cost').val(); 
      var patt=/^(\$)?\d+(\.\d+)?$/; 
      var result=patt.test(cost); 
      alert(result); 
      }); 

}); 

</script> 

當然你也可以使用純Java腳本,以及減少依賴

<input type="text" id="cost"> 
<input type="button" id="check" value="Check!" onClick="check();"> 
<script> 

// Pure Javascript Solution 

var check = function(){ 
    var cost = document.getElementById('cost').value; 
    var patt=/^(\$)?\d+(\.\d+)?$/; 
    var result=patt.test(cost); 
    alert(result); 

} 
</script>