我正在构建一个表单系统,现在我已开始进行验证。我的框架是CI所以对于我的验证的主要部分我有'trim|required|htmlspecialchars'
但我想知道的是:
A)最适合用于网址和电话*输入的内容
B)您建议我使用什么来进行客户端验证 - 如果有的话?
*我来自新西兰,所以我们的电话号码是00 123 4567或1234567
答案 0 :(得分:2)
CI's validation处理起来非常糟糕,特别是当你想要使用令人生活简单的令人敬畏的jquery插件时。
对于客户端,我使用了JörnZaefferer编写的jquery plugin,很容易掌握并且可以自定义。
有许多内置方法可用于标准内容,例如网址,对于新西兰电话号码,我创建了一些自定义规则,您可以添加到插件附带的additional-methods.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');
作为附注,请谨慎使用这些,除非您计划通过计算方式拨打这些数字,只是将它们保留为长度限制的自由文本,人们想要输入电话号码的方式有很多变化而且你是最好不要通过强制执行不适合他们的规则/他们的数量/添加字母/ +符号/扩展等来惹恼人们