首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查输入字段中的数字和连字符

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

Stack Overflow用户
提问于 2014-07-26 16:31:54
回答 1查看 1.2K关注 0票数 3

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

允许的数值是:

代码语言:javascript
复制
1
2
1-2
34-45

不允许:

代码语言:javascript
复制
-2
1-
-
any letters

我的尝试:

代码语言:javascript
复制
$('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‘应该是一个有效值.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-26 20:19:48

首先要做的是用,替换.并删除空格。这可以通过以下方式实现:

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

然后,您必须应用regex:

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

小提琴:http://jsfiddle.net/y5ACh/1/

regex解释:http://www.regexr.com/397j6

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

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24973161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档