Регулярное выражение условного if-then в JavaScript

#javascript #regex #conditional

#javascript #регулярное выражение #условное

Вопрос:

Как я могу создать регулярное выражение на основе JavaScript для приведенного ниже URL-адреса, которое ищет точное слово stuff ? Если слово существует, то оно ищет числовое значение, (d ) .

 http://myurl.com/app/stuff/detail/file/1234
  

Я пробовал, почти все здесь: http://www.rexegg.com/regex-conditionals.html , но я все еще застрял.

Комментарии:

1. В регулярных выражениях javascript нет условных выражений.

2. Почему этого //stuff/.*?/(d )/ недостаточно?

3. На самом деле этого было достаточно; спасибо

Ответ №1:

Вы могли бы сделать это с помощью положительного прогноза. Javascript поддерживает позитивный прогноз. Положительный предварительный просмотр используется для проверки строки, содержащей определенную строку.

 (?:.*?/(d )/.*?)?(?=bstuffb)(?:.*?/(d ).*)?
  

ДЕМОНСТРАЦИЯ

Комментарии:

1. Я не понимаю, почему вы использовали здесь lookahead, похоже, он работает и без этого. Можете ли вы объяснить?

Ответ №2:

Я считаю, что реализация регулярных выражений в Javascript не включает условные выражения.

Вы можете прочитать о доступных функциях на regular-expressions.info

Комментарии:

1. это может быть, см. Мое решение.

2. Да, но при этом используются предпросмотры регулярных выражений, а не условные выражения. Кроме того, при использовании прогнозов, я считаю (?=stuff).*?/(d )/ , более кратким.