接受值大于零,值可以是0.01或0.10

时间:2015-09-15 04:31:21

标签: javascript regex validation decimalformat

我有一种方法,我尝试验证值,值可以是任何但不应该是zero

function change(){
    var bill= document.getElementById("myTextField")
    var RE = /^(?!^0*$)(?!^0*\.0*$)^\d{1,2}(\.\d{1,2})?$/;
    if(RE.test(bill)){
       alert("True");
    }else{
      alert("False");
    }    
}

JSD FIDDLE DEMO

但即使我输入正确的值,这也会返回false。

the minimum value should be greater than 0 and maximum value is 99999.99

4 个答案:

答案 0 :(得分:2)

对于那些回答正确的人来说有点偏离主题,但是将值转换为浮动并测试它可能更容易。

function change(){
    var stBill = document.getElementById("myTextField").value;
    var num = parseFloat(stBill, 10);
    if(num > 0 && num <= 99999.99){
        alert("True");
    }else{
        alert("False");
    }
}

答案 1 :(得分:1)

您无法针对正则表达式测试stBill(输入元素对象本身)。你需要测试它的值:

RE.test(stBill.value)

答案 2 :(得分:1)

getListR :: ListId -> UserId -> Handler Html
getListR listId userId =  do
  list <- runDB $ get404 listId
  user_lists <- runDB $ selectList [UserId ==. userId] [Desc UserListsId]
  items <- runDB $ selectList [ItemListId ==. listId list, UserId ==. userId user_lists] [Desc ItemId]
  defaultLayout $ do
    $(widgetFile "list")

测试值而不是元素,选择元素而非元素

Demo Fiddle

答案 3 :(得分:1)

尝试修复

RE.test(stBill.value)

var stBill = document.getElementById("myTextField").value;

你应该寻找价值而不是元素。 :)