在JavaScript中验证TextBox

时间:2012-11-07 14:21:54

标签: javascript

我需要一个验证文本框,接受这样的$ 250.00这里'$'只接受一次,然后从不接受'$'以及'。'(点)。

4 个答案:

答案 0 :(得分:0)

例如,您可以使用masked input 你的面具将是

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

答案 1 :(得分: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
  • 之后应该$
  • 第一组数字后应该有.
  • 应在1 or more numbers
  • 之后以.结尾

答案 2 :(得分:0)

jquery是一个选项吗?

这是一个jquery解决方案。首先,我不会验证期望用户输入'$'。我会把它放在表格之外,只允许人们输入金额。这很奇怪,但我想我真的没有关于你在做什么的背景。见Jquery validation

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

这是使用digits仅允许数字。否则,如果你真的需要$ in,你需要创建一个custom validation rule

答案 3 :(得分: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>

当然你也可以使用纯javascript来减少依赖

<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>