регулярное выражение для конкретного URLField - PullRequest
0 голосов
/ 19 января 2019

Я пытаюсь проверить форму. При проверке поля URL мне нужно убедиться, что пользователь предоставляет строку без http(s)://, но может использовать www., а также такие строки, как xyz.abc.com - обратите внимание на две точки.

Я пытался использовать

UIApplication.sharedApplication().canOpenURL(url)

но это относится ко мне, написав https://.

Также я попробовал это регулярное выражение из здесь

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

после удаления первой части, похоже, не работает несколько точек.

1 Ответ

0 голосов
/ 19 января 2019

Вы можете использовать отрицательный взгляд за спиной :

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...