我正在尝试验证表格。
验证网址字段时,我需要确保
用户提供的字符串不带 http(s)://
,但可以使用www.
以及诸如xyz.abc.com
之类的字符串-注意两个点。
我尝试使用
UIApplication.sharedApplication().canOpenURL(url)
但这适用于我写了https://
的情况。
我也尝试过here的正则表达式
let regEx = "((https|http)://)((\\w|-)+)(([.]|[/])((\\w|-)+))+"
删除第一部分后,我似乎无法使多个点正常工作。
答案 0 :(得分:1)
您可以使用负向后看:
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