我正在尝试验证表单。
在验证 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/