查看: 2147|回复: 4

[已经解决] 关于正则表达式

  [复制链接]
梦石
0
星屑
50
在线时间
169 小时
注册时间
2011-1-5
回帖
71
发表于 2011-5-12 08:51:27 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
以下是秀秀的匹配手机号的表达式:
module ABC def self.reg(string)   # 转换为string   if string.is_a?(Numeric)     string = string.to_s   end   if string.size != 11     p "请输入11位数字"     return   end   #开始匹配  regexp为规 则  regexp = /[1][35][0-9][0-9] [0-9][0-9][0-9][0-9][0-9][0-9][0-9]/  if regexp =~ string      p "匹配成功"      return   else      p "匹配失败"      return   end end end

然后在地图事件上调用ABC.reg(135*********)会出现“匹配失败”,请高手指点一下。
梦石
0
星屑
310
在线时间
953 小时
注册时间
2007-4-25
回帖
798
发表于 2011-5-12 10:03:43 | 显示全部楼层
给 regexp 赋值那一行,两个 [0-9] 之间多了一个空格。

另:表达式这么写有些冗余了,不如:
  1. regexp = /1[35][0-9]{9}/
复制代码

评分

参与人数 1星屑 +600 收起 理由
「旅」 + 600

查看全部评分

su@rpg.blue:~> repeat 1 fortune
Matz is nice, so we are nice.
回复

使用道具 举报

梦石
0
星屑
8003
在线时间
1184 小时
注册时间
2007-7-29
回帖
2014
发表于 2011-5-12 10:05:54 | 显示全部楼层
  1. module PhoneNumber
  2.   def self.reg(num)
  3.     num = num.to_s
  4.     if num.size != 11
  5.       p "请输入11位数电话号码"
  6.     else
  7.       valid = /([1][35]\d\d\d\d\d\d\d\d)/
  8.       if valid =~ num
  9.         p "匹配成功"
  10.       else
  11.         p "匹配失败"
  12.       end
  13.     end
  14.   end
  15. end

  16. PhoneNumber::reg("13567854251") # ==> 匹配成功
  17. PhoneNumber::reg("13567A54251") # ==> 匹配失败
复制代码
经测试后没发现此问题……==''
回复

使用道具 举报

梦石
0
星屑
50
在线时间
169 小时
注册时间
2011-1-5
回帖
71
 楼主| 发表于 2011-5-13 09:02:42 | 显示全部楼层

null

上面的我试过了,还是匹配失败,-_-||郁闷中…
回复

使用道具 举报

孤独守望

梦石
0
星屑
3144
在线时间
1535 小时
注册时间
2006-10-16
回帖
4223

开拓者贵宾

发表于 2011-5-13 21:32:00 | 显示全部楼层
我只是来说一句正则是不接受通配符的,如果小lim那个还挂只能说是数据有问题XD
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部