验证手机输入Jquery?

时间:2015-01-20 05:59:20

标签: jquery validation input

我有一些输入,我想允许只输入手机,没有字母没有减号,首先必须字符必须是加号,也不能超过12个字符。最终结果必须是这样的

1234567891

到目前为止,这是我的代码

<input id="phone"></input>

Jquery的

$("input").keyup(function(){
    $(this).val($(this).val().replace(/[ -]/g, ''));
}); 

这里我只是不允许空格和减号,我不需要添加任何字母,首先必须总是+,并且没有12个字符的bigeer

这是工作小提琴 http://jsfiddle.net/9zza5ycc/

3 个答案:

答案 0 :(得分:0)

我不知道这是完美的方式。但我可以为您提供一个解决方案。

    $(document).ready(function(){

        $("#phone").keydown(function(event) {
            if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 || (event.keyCode == 65 && event.ctrlKey === true) || (event.keyCode >= 35 && event.keyCode <= 39)) {
                    return;
            } else {
                if ((event.keyCode != 107 && !(event.shiftKey && event.keyCode == 61))  && (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 ))) {
                    event.preventDefault();
                }
            }
        });
        $("#phone").blur(function(event) {
            var phoneNo = $('#phone').val();
            if(phoneNo.charAt(0) != '+' || (phoneNo.split("+").length > 2) || phoneNo.length > 13 || phoneNo.length < 13)
            {
                alert('please enter valid phone number');
            }
        });
    });

这是工作小提琴:http://jsfiddle.net/4xupb5uw/

答案 1 :(得分:0)

这将删除输入中不是数字或+字符的所有内容。

var o = input.replace(/[^\+\d]+/g, '');

然后你可以测试它的格式是否正确:

if(/^\+[\d]{6,12}$/.test(o)){
  console.log('Starts with '+' and has 6 - 12 digits')
} else {
  console.log('Wrong format')
}

此正则表达式将验证您的输入:

  • 从&#39; +&#39;开始字符
  • 后跟6-12位数字

答案 2 :(得分:0)

根据您列出的规格,听起来您只是想验证国际电话号码。

如果我没有弄错的话,人们通常会在前2位数之后和之后的3位数之后用几个空格格式化国际数字,这样您可能想要检查空格是否正确好。

function validTel(phone) {
    var arg = /^\+(?:[0-9]\x20?){6,14}[0-9]$/;

    if (arg.test(phone)) {
        // passed
    } else {
        // failed
    }
}

^将我们设置在字符串的开头。 \+指定第一个字符为加号。 (?:组.. [0-9]数字,\x20和空格?零或一次。 )结束组。 {6,12}重复6到12次,[0-9]个匹配的数字。 $结束查询。

这应确保字符串以 + 符号开头,仅包含数字(可能用单个空格分隔),长度为6到12个字符。