〖原创〗如何在powerbuilder验证E-mail地址的合法有效性?

1、object

window:w_frame

SingleLineEdit control:sle_mail

2、event

modified

3、powerscript

BOOLEAN  lb_part1_valid,lb_part2_valid,lb_part3_valid
STRING   ls_matchstring
STRING   ls_part1,ls_part2,ls_part3
INTEGER  li_posa,li_posdot
INTEGER  li_postemp1,li_postemp2
STRING   ls_tempstring

ls_matchstring = Trim(THIS.Text)
IF IsNull(ls_matchstring) OR ls_matchstring = "" THEN RETURN

//"@"pos
li_posa = Pos(ls_matchstring,"@")
//last's"."pos,仅高版本pb提供
li_posdot= LastPos(ls_matchstring,".")
//截取到part1
ls_part1 = Left(ls_matchstring,li_posa)
//截取到part2
ls_part2 = "." + Mid(ls_matchstring,li_posa + 1,li_posdot - li_posa)
//截取到part3
ls_part3 = Mid(ls_matchstring,li_posdot+ 1)

//检测 part1's 有效性,规格<hygougou@|hy-gougou@|hy_gougou@|hy.gougou@>
lb_part1_valid = Match(ls_part1,"^[A-Za-z0-9_/-/.]+@")

//检测 part2's 有效性,规格<hotmail.|vip.163.|sl-mail>
li_postemp1 = Pos(ls_part2,".")
li_postemp2 = Pos(ls_part2,".",li_postemp1 + 1)
DO WHILE li_postemp2 > 0
 ls_tempstring = Mid(ls_part2,li_postemp1 + 1,li_postemp2 - li_postemp1)
 lb_part2_valid = Match(ls_tempstring,"^[A-Za-z0-9/-]+/.")
 IF NOT lb_part2_valid THEN Exit
 li_postemp1 = li_postemp2
 li_postemp2 = Pos(ls_part2,".",li_postemp1 + 1)
LOOP

//检测 part3's 有效性,后缀>1,<5,规格<cn|com|slof>
lb_part3_valid = Match(ls_part3,"^[A-Za-z0-9][A-Za-z0-9][A-Za-z0-9]?[A-Za-z0-9]?$")


IF NOT lb_part1_valid  OR NOT lb_part2_valid OR NOT lb_part3_valid THEN
 Messagebox("提示","输入的E-Mail地址有误,请重新输入!")
 THIS.SetFocus()
 THIS.SelectText(1,Len(THIS.Text))
END IF

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hygougou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值