【问题标题】:Is there a way to pass multiple values into rangeOfString?有没有办法将多个值传递给 rangeOfString?
【发布时间】:2015-07-27 16:09:48
【问题描述】:

我正在尝试通过检查用户输入的 URL 是否包含 192.、10. 或 172 来检查它是否实际上是本地 IP 地址。我希望可以像下面的示例那样做一些事情,而不是运行三个单独的检查。

 if url.rangeOfString("192. | 10. | 172.") != nil { 

       var validLOCAL = regexValidated(httpURL, isSearch: false)

       if validLocalURL == true {
           return localURL
       } else {
           return ""
 }

我知道我在 jQuery 中看到过类似的东西,但我不确定在这种情况下是否可行。

有没有办法将多个值传递给 rangeOfString?

【问题讨论】:

  • 请注意代码中的“正则表达式”一词。这意味着正则表达式。那么为什么不使用正则表达式呢?
  • @matt 我将三种不同的可能性路由到不同的正则表达式验证器中。第一个是 URL,第二个是搜索查询,第三个是本地 IP 地址。换句话说,这只是一个初步检查,以确定将字符串发送到哪个正则表达式。
  • 我没有遵循这些。 :( 看看我的回答有没有用...

标签: validation swift


【解决方案1】:

使用 NSString 的 rangeOfSubstring:options:,其中 options:. RegularExpressionSearch - 现在你正在做你提议的伪代码正在做的事情。示例:

let target = "192.168.0.0"
let pat = "^(192\\.|10\\.|172\\.)"
let r = target.rangeOfString(pat, options: .RegularExpressionSearch)

如果没有找到,r 将是 nil

【讨论】:

  • 所以我创建了一个新的正则表达式,将它作为第一个参数传递给 rangeOfSubstring 并使用 .RegularExpressionSearch 作为第二个参数。谢谢马特
  • 我只是在猜测^,但我假设这就是您的想法。
猜你喜欢
  • 1970-01-01
  • 2017-09-02
  • 2022-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-19
  • 1970-01-01
相关资源
最近更新 更多