ios - 特定 URLField 的正则表达式

标签 ios swift regex

我正在尝试验证表单。 在验证 url 字段时,我需要确保 用户提供的字符串没有 http(s):// 但可以使用www. 以及诸如xyz.abc 的字符串.com - 注意两个点。

我试过用

UIApplication.sharedApplication().canOpenURL(url)

但这适用于我编写了 https://

我还尝试了来自 here 的这个正则表达式

    let regEx = "((https|http)://)((\\w|-)+)(([.]|[/])((\\w|-)+))+"

删除第一部分后,我似乎无法使用多个点。

最佳答案

您可以使用负向回顾:

let regEx = "(?<!((https|http)://))((\\w|-)+)(([.]|[/])((\\w|-)+))+"

给定这些字符串:

let string1 = "https://www.google.com"
let string2 = "stackoverflow.com/questions/54269877/regex-for-specific-urlfield"

用相同的谓词评估它们的结果:

let predicate = NSPredicate(format:"SELF MATCHES %@", argumentArray:[regEx])

会产生预期的结果:

predicate.evaluate(with: string1)  //false
predicate.evaluate(with: string2)  //true

关于ios - 特定 URLField 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54269877/

相关文章:

ios - 将 IBDesignable 和 IBInspectable 与 UIViewController 一起使用

javascript - 如何在javascript中使用正则表达式生成包含正斜杠的字符串?

ios - 包含另一个 Xcode 项目时出现链接器错误

ios - performSegueWithIdentifier 不工作 - Swift

ios - 如何使用按钮在 2 个部分之间移动单元格?

java - 提取逗号之间不带引号的值

Javascript 正则表达式匹配字母或 -

ios - 如何在 Objective-C 的不同 View 中共享本地变量

ios - 如何以编程方式更新 UITextView maximumNumberOfLines 并查看 UI 更新。

ios - 带有来自传递值的可选 SubView 的 swift UIView 子类