BCBC++BUILDER中实现正则表达式检测EMAIL电子邮件地址输入的正确 js email正则表达式

方法一:TRegexp

首先有必要说明一下TRegexp支持的正则语法,因为TRegexp功能有限,实际上有很多正则语法是不支持的,比如()|,也就是说正反括号以及或运算符都不可以用于TRegexp中的正则表达式。TRegexp支持的语法如下:
'^'// start-of-line anchor
'$'// end-of-line anchor
'.'// matches any character
'['// start a character class
']'// end a character class
'^'// negates character class if 1st character
'*'// Kleene closure (matches 0 or more)
'+'// Positive closure (1 or more)
'?'// Optional closure (0 or 1)

TRegexp的详细说明见:http://root.cern.ch/root/html/TRegexp.html

经反复测试,得到一个TRegexp下可用的EMAIL电子邮件地址的正则表达式:

^[a-zA-Z0-9]+[_?[a-zA-Z0-9]+]*[a-zA-Z0-9]+@[a-zA-Z0-9]+.[a-zA-Z0-9]+[.[a-zA-Z0-9]+]*$

但仍然有问题:"abc_abc@sina.com.cn."最后的点是多余的,但是这样的字符串仍然通过了上述正则检查。原因在于我没有找到可以在TRegexp中有效替代"(.[a-zA-Z0-9]+)*"这样的表达的方法。

希望有人能够指正!

完整代码如下:

#include <Regexp.h>

TRegexpp("^[a-zA-Z0-9]+[_?[a-zA-Z0-9]+]*[a-zA-Z0-9]+@[a-zA-Z0-9]+.[a-zA-Z0-9]+[.[a-zA-Z0-9]+]*$");
unsigned int validlen;
int validstart =p.find(Edit2->Text.c_str(),&validlen); //X从0开始
if(validstart == -1 || validlen == 0)
{
return;
}
AnsiString result =Edit2->Text.SubString(validstart + 1,validlen);
ShowMessage(result);

方法二:VB SCRIPT

#definePG OlePropertyGet
#definePS OlePropertySet
#defineFN OleFunction
#definePR OleProcedure
Memo1->Clear();
VariantAxl =Variant::CreateObject("VBScript.RegExp"); //利用脚本里的正则
Axl.PS("Global", true);//全局匹配
Axl.PS("Pattern",Edit1->Text.c_str());//写入正则表达式
BCBC++BUILDER中实现正则表达式检测EMAIL电子邮件地址输入的正确 js email正则表达式
Variant rtn = Axl.FN("Execute",Edit2->Text.c_str());//开始执行
for (int i=0; i != rtn.PG("Count"); i++)
{
Memo1->Lines->A dd((rtn.PG("Item",i).PG("Value")));//取出匹配的东东
}

同样也测试了诸多种正则表达式,最终得到的比较满意的结果是:

^[a-zA-Z0-9]+(_+[a-zA-Z0-9]+)*@w+([-.]w+)*.w+([-.]w+)*$

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/317219.html

更多阅读

如何在局域网中实现屏幕监控 局域网屏幕实时监控

如何在局域网中实现屏幕监控——简介WorkWin局域网管理软件采用一台服务器监视并记录局域网的所有客户机的屏幕,是管理员通过一台机器管理所有客户端,所有客户端的屏幕画面都在管理端查看,管理员也可以根据自己的需要设置截屏的周期以

WPF中实现PropertyGrid的三种方式 wpf propertygrid

WPF中实现PropertyGrid的三种方式由于WPF中没有提供PropertyGrid控件,有些业务需要此类的控件。这篇文章介绍在WPF中实现PropertyGrid的三种方式,三种方式都是俺平时使用时总结出来的。第一种方式:使用WindowsForm的PropertyGrid控件。

在企业发展中实现自我价值 如何实现自我价值

袁燕群用同舟共济、相依为命来表达企业与员工相互之间的关系是十分恰当的,只有企业发展了,员工才能更好的实现自己的价值;而个人价值的实现则会更加有利于企业的良性发展。对于企业、员工来说,如何处理企业发展与个人价值实现之间的关系

如何在BIOS中关闭开机软驱检测功能 联想bios关闭软驱

BIOS中关闭开机软驱检测功能,可以按照以下步骤来解决:第一,打开电脑电源,在屏幕左下方出现“Press DEL to enter SETUP”提示信息时,按“Del”键(如果是Phinex BIOS,将提示按“F2”键)。第二,打开BIOS设置主界面,选中“Advanced BIOS Features

声明:《BCBC++BUILDER中实现正则表达式检测EMAIL电子邮件地址输入的正确 js email正则表达式》为网友風芿共分享!如侵犯到您的合法权益请联系我们删除