首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用jQuery输入号码表

用jQuery输入号码表
EN

Stack Overflow用户
提问于 2011-04-25 08:39:24
回答 3查看 849关注 0票数 3

我正在做一些工作,但我仍然有三个问题。我试过很多方法,但没有什么没用的。如果你对jQuery有足够的了解,请建议我做些改变。

请先浏览以下网址:

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

我要做的是:

  1. 用户将输入电话号码。
  2. 号码将只有8个字符长度。
  3. 号码必须以9或7开头。这意味着9 7xxxxxxx或7 7xxxxxxx。
  4. 用户最多可以输入3条逗号。

G 212

目前的问题是:

  1. ,在数字后面不能有逗号。只有在9 9xxxxxxx或7 9xxxxxxx格式的numbers.
  2. Validate数字之间,而writing.
  3. They不能输入连续逗号。我是说",“不允许。

如果您看不到jsfiddle上的示例,下面是复制的版本:

HTML

代码语言:javascript
运行
复制
<input type="text" id="sms-sender" />

JS

代码语言:javascript
运行
复制
$(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();
        }
    }
});

});

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-25 08:59:24

使用正则表达式来声明,9或7 ([97])后面是7位,逗号(\d{7},) 0至2倍({0,2})覆盖当前正在写入的数字之前的所有内容,然后是9或7 ([97]),后面是0到7位数字(\d{0,7}),所有这些都是可选的(?)。

http://jsfiddle.net/xTRph/

html:

代码语言:javascript
运行
复制
<input type="text" id="sms-sender" />

javascript:

代码语言: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()
});
票数 1
EN

Stack Overflow用户

发布于 2011-04-25 08:50:29

2.在输入http://jsfiddle.net/2n7Tf/1/时使用键控验证数字

代码语言:javascript
运行
复制
$('#sms-sender').keyup(validateNumber);

对于其他可以使用正则表达式的内容,1. & 2.。但我不知道你用逗号是什么意思。请解释一下。

代码语言:javascript
运行
复制
/^[0-9]+$/.test(number)

如果数字与正则表达式匹配,则返回true。好了,给你:http://jsfiddle.net/2n7Tf/4/

代码语言:javascript
运行
复制
if(/^([0-9]+,)*[0-9]+$/.test($('#sms-sender').val())){
    alert("match!");
}
票数 1
EN

Stack Overflow用户

发布于 2011-04-25 09:02:16

代码语言:javascript
运行
复制
/^[79]\d{7}(,[79]\d{7}){0,2}$/.test($("#sms-sender").val())
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5776687

复制
相关文章

相似问题

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