регулярное выражение для конкретного URLField

Вы можете попробовать добавить общую службу к компонентам, которые могут удерживать URL-адрес и добавлять к нему, когда вы проходите каждый шаг. Что-то вроде этого:

export class URLService {

  private URL: string[] = [];

  public addToURL(segment: string): void {
    this.URL = [ ...this.URL, segment ];
  }

  public retrieveURL(): string {
    return this.URL.join('/');
  }

}

. Вставьте URL-адрес в любой компонент, который вы используете для создания URL-адреса, и каждый раз, когда у вас есть новый элемент для добавления, вызовите urlService.addToURL('item'). Затем, когда вы будете готовы к полному URL-адресу, вызовите urlService.retrieveURL(), чтобы получить строку, которую вы можете использовать.

0
задан JVS 19 January 2019 в 18:00
поделиться

1 ответ

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

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

Таким образом, с учетом этих строк:

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

Результат оценки их с тем же предикатом: [117 ]

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

даст ожидаемые результаты:

predicate.evaluate(with: string1)  //false
predicate.evaluate(with: string2)  //true
0
ответ дан ielyamani 19 January 2019 в 18:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: