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

5

你们能推荐一个适用于jQuery、能验证美国和国际电话号码的插件吗?我已经谷歌了很多,但都不好用。

如果有实时验证功能(即用户在输入框中输入电话号码时即时验证),那就太棒了。

2个回答

12
我建议使用jQuery Validate,然后通过以下代码扩展功能,这段代码我是从这篇博客文章中找到的。
它提供了一个漂亮的代码片段(在评论中有更好的版本),您可以将其用于国际号码以及美国电话号码。我已经在使用additional methods插件,所以我将该方法重命名为intlphone,然后将代码放到我的网页上,在jQuery之后、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%有效,但这已经是个不错的开端了。


3

电话号码真正有效的是什么?至少在国际上,电话号码没有通用格式。你可以只写数字,使用一些括号、破折号、加号等。但真正重要的是这些数字。在大多数国家,甚至没有通用长度限制。

因此,我尚未见过可用的电话号码验证器。


+1,验证美国和国际号码都是不可能的。 - OptimusCrime
1
实际上有一种方法,您可以验证符合https://en.wikipedia.org/wiki/E.164的号码。 - Chris Gomez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接