gpt4 book ai didi

jquery - 检查输入字段中的数字和连字符

转载 作者:行者123 更新时间:2023-12-01 01:14:44 25 4
gpt4 key购买 nike

我只想检查输入值是否是数字和/或两个数字之间是否有连字符。逗号应替换为点 (1,23 -> 1.23),并且应删除空格。

允许的值为:

1
2
1-2
34-45

不允许:

-2
1-
-
any letters

我的尝试:

$('form').submit(function( event ) {
$('input').each(function(index, element) {
$(element).val($(element).val().replace(",", ".").replace(" ", "")); // replace comma, delete spaces
if (!$.isNumeric($(element).val())) {
alert("error");
event.preventDefault();
}
// else submit
});

我认为 isNumeric 是错误的方式,因为“12-5”应该是一个有效值...

最佳答案

首先要做的是将 , 替换为 . 并删除空格。这可以通过以下方式完成:

var input = "1 2 3. 4 - 56,78"; input.replace(//g,"").replace(/,/g,".")

然后你必须应用正则表达式:

/^\d+(\.\d+|\d*)(-?\d+(\.\d+|\d*)|\d*)$/

fiddle :http://jsfiddle.net/y5ACh/1/

正则表达式解释:http://www.regexr.com/397j6

忘记提及 - 我假设像 .2-31 这样的字符串是无效的($.isNumeric(".2") 返回 true,所以我们不能在每个 - 之前和之后使用 $.isNumeric)

<小时/>

要使 float 无效,您需要删除 (\.\d+|\d*) 组:http://jsfiddle.net/y5ACh/2/

要使整数无效,您需要删除 \d* 组:http://jsfiddle.net/y5ACh/3/

关于jquery - 检查输入字段中的数字和连字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24973161/

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