|
做网站的人都知道,网页输入的校验是一个非常繁琐的工作。如何使这个事情变得有趣而轻松呢?
首先看看我们现状:
1,页面的输入框数据需要在浏览器提交前使用javascript校验以便增加界面友好性。
2,后台脚本还需要对所输入的数据进行服务端的校验以保证安全性。
由此看来,每增加一个字段,我们似乎都要写两份校验代码,一个是javascript的,一个是后台脚本的(包括但不限于php)。
使用下面这个设计很好的解决了这个问题:
1,使用regex正则表达式作为最核心的技术达到统一校验。
2,为了适应更多的自定义校验,需要一套能灵活扩展的校验格式。我定义为“[number:splitor:]type:value”
例如:regex:^$|^\d{4}-(?:[1-9]|[0][1-9]|1[0-2])-(?:[1-9]|0[1-9]|[12]\d|3[01])$
这校验格式要求输入的数据符合所给的正则表达式, 这里是可以为空的YYYY-mm-dd日期的严格校验
例如:function:same,Password,RetypePassword
这要求输入的Password和RetypePassword必须使same这个函数返回真
例如:2:&:regex:^[\w-_]{6,}$&&function:same,Password,RetypePassword
这说明多个校验条件使用2个&来分割,其中第一个条件要求输入框输入6个以上的字母、数字、连字符、下划线。第二个条件要求输入框Password的值必须和RetypePassword一致(same函数返回真)。
如此以来,这个校验格式扩展机制几乎可以无限制的满足了通用性和特殊性的校验要求。下面讲讲具体如何实现:
1,校验码的存放问题。
据我的实际经验,放在输入框的lang属性最好,
如下所示
- <input name="PHONE" type="text" class="input1" id="PHONE" accesskey="P"
- title="电话号码" lang="regex:^\d+-\d+-\d+$|^\d+-\d+$|^13\d{9}$|^159\d{8}$" value=""
- maxlength="127" />
复制代码
改了下标题,SASADONG师兄应该没意见吧...[em09]有意见PM我 -----by iptton
[ 本帖最后由 iptton 于 2006-10-31 16:10 编辑 ] |
评分
-
1
查看全部评分
-
|