日期:2014-05-16  浏览次数:20751 次

区分数据提交到相应字段
姓名:张三
年龄:20
住址:北京市东区
个人主页:http://www.csdn.net



将个人信息提交到数据库,目前的功能是按这种标准格式提交4条数据,录入到相应字段里去
但是有些人提交的格式可能有出入,
比如冒号他用的是全角 或个人主页写的个人网址,年龄写的年纪
还有就是4条记录的顺序不一致
导致现有的程序无法识别。
有没有好的办法能准确识别区分后提交到数据库呢?


求大神现身帮助,给出思路和代码,谢谢
------解决方案--------------------
定义2个数组,一个数组用于存储数据库字段名称,另外一个对应的数组项上存储正则表达式的内容,将可能的前缀或者分隔符号加上,用正则来提取内容

s="年龄:20"&chr(10)&_
"住址:北京市东区"&chr(10)&_
"姓名:张三"&chr(10)&_
"个人主页:http://www.csdn.net"

arrfield=array("name","age","addr","site")
arrrx=array("^(姓名
------解决方案--------------------
名字)[::]([^\r\n]+)","^(年龄
------解决方案--------------------
年纪
------解决方案--------------------
岁数)[::]([^\r\n]+)","^(地址
------解决方案--------------------
住址)[::]([^\r\n]+)","^(个人主页
------解决方案--------------------
网址)[::]([^\r\n]+)")
set rx=new regexp
rx.Multiline=true
rx.Global=true
for i=0 to ubound(arrfield)
  rx.Pattern=arrrx(i)
  set mc=rx.Execute(s)
  if mc.count>0 then
     set m=mc(0)
    msgbox  arrfield(i)&":"&m.submatches(1)
  else
    msgbox "找不到和“"&arrfield(i)&"”匹配的内容"
  end if
next

set rx=nothing


或者客户端验证客户提交的数据,不正确不允许提交