Swift正则表达式为Url“www”创建,不为“http”创建有效URL

时间:2016-01-18 13:14:38

标签: ios swift validation url

在Swift中我正在使用正则表达式检查“WWW”“HTTP”两者,但在我的代码中,当我输入时它只检查http “www.google.com”然后它的节目无效请给我解决方案。这是我的代码。当我们没有放http时如何检查网址。

 func validateUrl (stringURL : NSString) -> Bool {

        let urlRegEx = "(http|https)://((\\w)*|([0-9]*)|([-|_])*)+([\\.|/]((\\w)*|([0-9]*)|([-|_])*)+)+(/)?(\\?.*)?"
        let predicate = NSPredicate(format:"SELF MATCHES %@", argumentArray:[urlRegEx])
        let urlTest = NSPredicate.predicateWithSubstitutionVariables(predicate)
        print(urlTest);
        return predicate.evaluateWithObject(stringURL)
    }

1 个答案:

答案 0 :(得分:1)

您可以尝试与此类似的正则表达式:

(http:\/\/)?w{3}\.[^\s]*\.[a-zA-Z]{2,3}
  • (http:\/\/)?:http可以显示0或1次。
  • w{3}:www
  • \.[^\s]*:点字符后跟除空格以外的任意数量的其他字符
  • \.[a-zA-Z]{2,3}:点字符后跟2或3个字母

我不确定它是否涵盖了所有情况,但它会给你一个很好的起点来做一些测试和重构。它也不包括非法的URL字符。