1

我正在构建一个表单系统,现在我已经开始进行验证。我的框架是 CI,所以对于我的验证的主要部分,我有'trim|required|htmlspecialchars'但我想知道的是:

A)最适合用于 url 和 phone* 输入

B)您会建议我使用什么来进行客户端验证 - 如果有的话?

*我来自新西兰,所以我们的电话号码是 00 123 4567 或 1234567

4

1 回答 1

2

CI 的验证处理起来非常糟糕,尤其是当你想使用让生活变得简单的很棒的 jquery 插件时。

对于客户端,我使用了由 Jörn Zaefferer 编写的jquery 插件,它很容易掌握并且非常可定制。

有很多内置方法可以用于标准的东西,例如 url,对于新西兰电话号码,我创建了一些自定义规则,您可以将其添加到插件随附的附加方法.js 文件中。

/**
 * matches NZ phone number formats
 * 
 * +64 7 123 1234
 * or
 * 07-123-1234
 * or
 * 071231234
 * 
 * spaces/hyphens optional
 *
 */
jQuery.validator.addMethod('phoneNZ', function(phone_number, element) {
return this.optional(element) || phone_number.length > 9 &&
phone_number.match(/^(0|(\+64(\s|-)?)){1}\d{1}(\s|-)?\d{3}(\s|-)?\d{4}$/, 'Please specify a valid phone number');


/**
 * matches NZ mobile number formats
 *  
 * 021 123 1234
 * or
 * 027 123 1234
 * or
 * 022-123-1234
 * or
 * +64 21 123 1234
 *
 * spaces/hyphens optional
 * 
 */
jQuery.validator.addMethod('mobileNZ', function(phone_number, element) {
return this.optional(element) || phone_number.length > 9 &&
phone_number.match(/^(0|(\+64(\s|-)?)){1}(21|22|27){1}(\s|-)?\d{3}(\s|-)?\d{4}$/);
}, 'Please specify a valid mobile number');

作为旁注,请谨慎使用这些号码,除非您打算通过计算方式拨打这些号码,只需将它们作为自由文本保留长度限制,人们想要输入电话号码的方式有很多变化,您最好不要通过执行不适合他们/他们的数量/添加字母/+符号/扩展等的规则来激怒人们

于 2012-04-12T04:04:08.880 回答