gpt4 book ai didi

javascript - 脚本中只允许数字和点

转载 作者:可可西里 更新时间:2023-11-01 01:19:52 27 4
gpt4 key购买 nike

我正在使用此 javascript 来限制用户只能键入数字,并且只能键入一个点作为小数点分隔符。

<script type="text/javascript">
function fun_AllowOnlyAmountAndDot(txt)
{
if(event.keyCode > 47 && event.keyCode < 58 || event.keyCode == 46)
{
var txtbx=document.getElementById(txt);
var amount = document.getElementById(txt).value;
var present=0;
var count=0;

if(amount.indexOf(".",present)||amount.indexOf(".",present+1));
{
// alert('0');
}

/*if(amount.length==2)
{
if(event.keyCode != 46)
return false;
}*/
do
{
present=amount.indexOf(".",present);
if(present!=-1)
{
count++;
present++;
}
}
while(present!=-1);
if(present==-1 && amount.length==0 && event.keyCode == 46)
{
event.keyCode=0;
//alert("Wrong position of decimal point not allowed !!");
return false;
}

if(count>=1 && event.keyCode == 46)
{

event.keyCode=0;
//alert("Only one decimal point is allowed !!");
return false;
}
if(count==1)
{
var lastdigits=amount.substring(amount.indexOf(".")+1,amount.length);
if(lastdigits.length>=2)
{
//alert("Two decimal places only allowed");
event.keyCode=0;
return false;
}
}
return true;
}
else
{
event.keyCode=0;
//alert("Only Numbers with dot allowed !!");
return false;
}

}

</script>

<td align="right">
<asp:TextBox ID="txtQ1gTarget" runat="server" Width="30px" CssClass="txtbx" MaxLength="6" onkeypress="return fun_AllowOnlyAmountAndDot(this);"></asp:TextBox>
</td>

但是 onkeypress(this) 事件在这个地方的那个函数中返回了 object required error

var amount = document.getElementById(txt).value;

我这里有什么错误?

最佳答案

这是使用正则表达式的好地方。

通过使用正则表达式,您只需一行即可替换所有代码。

您可以使用以下正则表达式 来验证您的要求:

[0-9]*\.?[0-9]*

换句话说:零个或多个数字字符,后跟零个或一个句点,再后跟零个或多个数字字符。

你可以用这个替换你的代码:

function validate(s) {
var rgx = /^[0-9]*\.?[0-9]*$/;
return s.match(rgx);
}

该代码可以替代您的整个功能!

请注意,您必须使用反斜杠对句点进行转义(否则它代表“任何字符”)。

有关在 javascript 中使用正则表达式的更多信息,请查看:

你也可以在这里测试上面的正则表达式:


上面使用的正则表达式的解释:

  • 方括号表示“这些方括号内的任何字符”。您可以使用连字符(如上)来指示一系列字符。

  • * 表示“前一个表达式的零个或多个。”

  • [0-9]* 表示“零个或多个数字

  • 反斜杠用作句点的转义字符,因为句点通常代表“任何字符”。

  • ? 表示“前一个字符的零个或一个。”

  • ^ 表示字符串的开头。

  • $ 代表一个字符串的结尾。

  • ^ 开始正则表达式并以 $ 结束正则表达式确保整个字符串符合正则表达式模式。

希望这对您有所帮助!

关于javascript - 脚本中只允许数字和点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9799505/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com