Project1

标题: 关于正则表达式 [打印本页]

作者: 镜花水月    时间: 2011-5-12 08:51
标题: 关于正则表达式
以下是秀秀的匹配手机号的表达式:
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*********)会出现“匹配失败”,请高手指点一下。
作者: 苏小脉    时间: 2011-5-12 10:03
给 regexp 赋值那一行,两个 [0-9] 之间多了一个空格。

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

作者: enghao_lim    时间: 2011-5-12 10:05
  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") # ==> 匹配失败
复制代码
经测试后没发现此问题……==''
作者: 镜花水月    时间: 2011-5-13 09:02
标题: null
上面的我试过了,还是匹配失败,-_-||郁闷中…
作者: IamI    时间: 2011-5-13 21:32
我只是来说一句正则是不接受通配符的,如果小lim那个还挂只能说是数据有问题XD




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1