jquery - 使用 jQuery 输入数字列表

标签 jquery input maskedinput

我正在做一些工作,但仍然有 3 个问题。我尝试了很多方法,但没有什么用。如果您足够了解 jQuery,请建议我进行一些更改。

首先请查看以下网址:

http://jsfiddle.net/thisizmonster/maP57/

我在做什么:

  1. 用户将输入电话号码。
  2. 数字长度仅为 8 个字符。
  3. 数字必须以 9 或 7 开头。表示 9xxxxxxx 或 7xxxxxxx。
  4. 用户最多可以输入 3 个数字。
  5. 数字必须用逗号分隔。

当前的问题是:

  1. 数字后面不能有逗号。仅在数字之间。
  2. 写入时验证 9xxxxxxx 或 7xxxxxxx 格式的数字。
  3. 他们无法输入连续逗号。我的意思是“,,”不允许。
<小时/>

如果您在 jsfiddle 上看不到示例,这里是复制版本:

HTML

<input type="text" id="sms-sender" />

JS

$(document).ready(function() {

$("#sms-sender").keypress(function(event) {
    var numbers = $("#sms-sender").val().split(',');
    var maxMsg = 3;

    if (event.which != 44 && (event.which < 47 || event.which > 59) || numbers.length > maxMsg) {
        event.preventDefault();
    }
    if (numbers.length > maxMsg) {
        event.preventDefault();
    }
    if (event.which == 44) {
        if (numbers.length <= maxMsg) {
            $("#number-div").html("");
            for (i = 0; i < numbers.length; i++) {
                $("#number-div").append("<div class='numbers'>&nbsp;"+numbers[i]+"</div>").fadeIn('slow');
                if (numbers[i].length != 8) {
                    $("#number-div").append("wrong")
                }
            }
        }
    }
    if (numbers[numbers.length - 1].length > 7) {
        if (event.which != 44) {
            event.preventDefault();
        }
    }
});

});

最佳答案

使用正则表达式表示 9 或 7 ([97]) 后跟 7 个数字和逗号 (\d{7},) 0 到 2 次({0,2}) 涵盖您当前正在写入的数字之前的所有内容,而该数字又由 9 或 7 ([97]) 后跟 0 到 7 位数字覆盖(\d{0,7}) 全部可选 (?)。

http://jsfiddle.net/xTRph/

html:

<input type="text" id="sms-sender" />

JavaScript:

var lastGood = ''
$("#sms-sender").bind('keyup',function(e){
    if(!$('#sms-sender').val().match(/^([97]\d{7},){0,2}([97]\d{0,7})?$/))
        $('#sms-sender').val(lastGood)
    else
       lastGood = $('#sms-sender').val()
});

关于jquery - 使用 jQuery 输入数字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5776687/

相关文章:

javascript - 基于ajax请求jquery检查span

Java 输入/输出

javascript - 在移动浏览器上强制执行 maxlength 属性

javascript - 更改键入值的文本颜色,而不更改已存在值的颜色。使用 css3 或 javascript 或 jquery

JQuery 屏蔽输入插件不接受粘贴

javascript - 如何在node js中将文件上传到服务器上?

javascript - 特殊字符替换功能

javascript - MVC 3 $.post 有效但 $.ajax 无效

c - 在C输入程序中按回车键

c# - 表单提交后如何从输入掩码中删除文字?