Products
GG网络技术分享 2025-03-18 16:14 2
函数返回,判断一个字符串是手机号还是固话号,用正则匹配,是手机号返回,否则返回空,会正则的老师帮个忙/
先自行下载一个 PerlRegEx用下面的代码
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := \'13701271023\';
reg.RegEx := \'1(3|5|7|8)\\d{9}\';
if reg.Match then
ShowMessage(\'是手机\')
else
ShowMessage(\'不是\');
FreeAndNil(reg);
end;
电话号码,要看你的格式,有没有横杠
下面这个匹配有横杠的,替换到上面的正则就可以了
\\d{3,4}\\-\\d{7,8}
这个能匹配3~4位区号-7~8位电话,比如 010-12345678
如果不想用PerlRegEx,也可以用 ReguarExpressions的TRegEx,这是delphi自带的,代码类似
前几天给大家介绍了一下正则表达式的基本语法,相信大家现在都对正则表达式的语法有了一定的了解,那今天我们就来根据我们学习的东西来进行实战演练。
我们都知道表单在实际开发中被广泛的运用,而数据格式的正确性决定了数据是否能被成功的存储到数据库中。虽然说在数据提交到后台会对数据格式进行验证,但是如果通过这种方法来回发送和请求数据难免会造成资源浪费,所以前端验证也很重要,正式项目开发中实行的是前后端双向验证,就是说前端验证成功一次性把数据提交到后端验证,而不需要没填一个数据都发送一次请求来进行验证。
那么我们常见的数据通过正则验证有哪几种呢?
一般来说这几种是比较常见的使用正则来进行验证的数据,下面我们就挨个来对这类数据使用正则进行验证。
邮箱验证
我们都知道邮箱的格式,都是长的像这个样子:xxxxxxx@xxx.XXX,那么我们就按照这个格式来写一个正则表达式:
首先,在‘@’之前,可以使用的字符有:字母、数字、特殊符号:._%+-,那么我们根据这个部分就可以写第一部分的正则:[A-Z0-9._%+-]+,由于这些字符是可以随意组合的且至少要有以为,所以用[]将它们包括起来,并在后面加上+表示至少要有一个字符,然后我们正则的就长这样:
然后,在@和.之间呢,我们可以使用的字符有:字母、数字、特殊符号:.-,那么这个部分的正则我们也可以写出来了:[A-Z0-9.-]+,然后我们再加上那个点.,但是我们不能直接写点,需要进行转义,用\\.。然后我们再把这部分正则和上面的正则拼接起来,就长成了这样:
最后一个部分很简单,就是纯粹的字母组合,要求长度是2-4位:[A-Z]{2,4},拼接到上面的正则上,就是一个完整的邮箱验证的正则:^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$,我们来看一下完整的示意图:
手机号
这个很简单,我们都知道手机号的规则,手机号一定是11位并且第一位是1,所以正则也很简单:^1\\d{10}$,我们来看一下示意图:
办公电话
这里我讲的办公电话的正则并不是严格意义的办公电话的正则表达,因为现在手机很普及,电话的使用率大大降低,所以没有电话也是很常见的,所以我在这里讲的办公电话的正则是可以匹配空字符串的。办公电话的格式也很简单:3-4位数字加上一个-再加上0-8位数字,正则表达式为:^(\\d{3,4})?(-)?(\\d{0,8})$,示意图:
金额
金额的匹配比较复杂,因为有小数的存在,以及小数点后0的个数也是有限制的,这个就作为个人思考,我在这里仅展现最后的匹配正则和示意图,大家可以照着图理解一下,也可以增加印象,对正则有更深的认识。正则表达式为:^(^[1-9]([0-9]+)?(\\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\\.[0-9]([0-9])?$)$,示意图如下:
到这里为止,正则表达式的分享就结束了,各位同学如果有问题可以给我留言,我们共同探讨。
欢迎关注我的微信公众号: 「皮蛋菌丶」
Demand feedback