这个问题已经在这里有了答案:




9年前关闭。






我只允许0.00到100.00。

function ValidateText(i)
    {

        if(i.value.length>0)
        {
         i.value = i.value.replace(/[^\d.d]+/g, '');

        }
    }
<asp:textbox id="txtrate" runat="server" Width="200px"  onkeyup= "javascript:ValidateText(this)"></asp:textbox>

允许0-9.0-9。请帮帮我。谢谢

最佳答案

现在,这是一个受欢迎的问题!

这应该做:

function validate(s) {
  return s.match(/^(100(\.0{1,2})?|[1-9]?\d(\.\d{1,2})?)$/) != null;
}

var test = [
  '3.0',
  '5',
  '99.99',
  '100',
  '100.00',
  '100.01',
  '101',
  '0.3',
  '.5',
  '0.567',
];

for (i=0; i<test.length; ++i) {
  WScript.StdOut.WriteLine(test[i] + ' => ' + validate(test[i]));
}

输出:
3.0 => true
5 => true
99.99 => true
100 => true
100.00 => true
100.01 => false
101 => false
0.3 => true
.5 => false
0.567 => false

编辑:可以将正则表达式缩短一些而不改变其含义,感谢6502
/^(100(\.00?)?|[1-9]?\d(\.\d\d?)?)$/

关于javascript正则表达式,百分比介于0到100之间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6593017/

10-08 22:25