ruby - 使用包含?命令搜索包含数字和字母混合的字符串
问题描述
我正在尝试检查该字符串是否是格式为“XXXX XXXX”的有效电话号码,其中每个 X 是从 0 到 9 的整数。如果其有效返回 TRUE,否则返回 FALSE。
我不确定为什么不能!(0..9).include?(char)
正常工作。
任何意见,将不胜感激。谢谢
def phone_number(str)
if str.length == 9 && str[4] = " "
str[4] = ""
str.each_char do |char|
if !(0..9).include?(char)
print false
end
end
return true
end
return false
end
print phone_number("1234 5678") # => true
puts
print phone_number("123 5678") # => false
puts
print phone_number("1234 df78") # => false
puts
print phone_number("12345678") # => false
解决方案
我建议使用正则表达式来实现您想要做的事情!
这是示例代码:
def phone_number(str)
!!str.match(/^\d{4}\s{1}\d{4}$/)
end
print phone_number("1234 5678") # => true
puts
print phone_number("123 5678") # => false
puts
print phone_number("1234 df78") # => false
puts
print phone_number("12345678") # => false
推荐阅读
- python - Python 脚本在尝试获取 TFS 工作项时返回错误
- java - Room :参数的类型必须是带有 @Entity 注释的类或它的集合/数组
- php - MSSQL 在 PHP 中的使用
- python - Python:使用生成器打印二维数组
- facebook-graph-api - 无法使用图形 API 将访客帖子发布到 Facebook 页面
- excel - 使用基于另一个条件的现有公式输出覆盖单元格数据
- swift - Swift - Make func type explicit (in protocol)
- c++ - C++,如何比较使用 const 对象和非 const 对象?
- javascript - 在jquery中读取以#开头的id
- angularjs - AngularJS UI-Grid row.entity 嵌套 JSON