用于国际电话号码验证的jquery插件

时间:2011-12-06 09:15:57

标签: jquery validation jquery-validate phone-number

你们能为美国和国际号码的jQuery推荐一个好的电话号码验证插件吗?我用Google搜索了很多,但找不到一个效果很好的。

如果有实时验证会很棒(即:当用户在输入字段中键入电话号码时它会立即验证)

2 个答案:

答案 0 :(得分:11)

我建议使用jQuery Validate,然后使用下面的代码扩展功能,我在this blog post找到了这些代码。

它提供了一个很好的代码片段(在评论中变得更好),您可以将其用于国际号码以及美国电话号码。我已经在使用additional methods插件,所以我在jQuery之后和intlphone /验证设置之前重命名了方法document.ready,然后将代码重命名为我的网页:

    jQuery.validator.addMethod('intlphone', function(value) { return (value.match(/^((\+)?[1-9]{1,2})?([-\s\.])?((\(\d{1,4}\))|\d{1,4})(([-\s\.])?[0-9]{1,12}){1,2}(\s*(ext|x)\s*\.?:?\s*([0-9]+))?$/)); }, 'Please enter a valid phone number');

在输入字段中,我想成为一个电话号码,我将类设置为intlphone并添加HTML5属性/属性以获得最小长度(尽管这也可以通过在设置时指定验证规则来完成验证),所以我的输入是这样的:

<input class="required intlphone" name="phone" minLength="7" type="text" />

正如博客文章所述,它接受数字以及-+()以及x:ext:

格式的空格和扩展名

这并不能保证电话号码在100%的时间内都有效,但这不是一个糟糕的开始。

答案 1 :(得分:3)

真正(!)对电话号码有效的唯一方法是什么?至少在国际上,没有电话号码的通用格式。你只能写数字,使用一些括号,破折号,加号等。但真正重要的是数字。大多数国家甚至没有共同的长度限制。

所以不,我还没有看到可用的电话号码验证器。