2017-01-10 3 views
-1

Предоставлено три URLS:Regex - строка исключена как до, так и после основного выражения

  • http://stackoverflow.com/questionsss/3003310 -> истинный
  • http://stackoverflow.com/questionsss/3003310?s=1 -> ложь (s = 1 найдено)
  • http://stackoverflow.com/questionsss?s=1&N=3003310 -> ложь (s = 1 найдено)

Как написать регулярное выражение в JS, которое возвращает true, если в URL-адресе найдено 3003310, а false, если s = 1 находится в любом месте URL-адреса.

Спасибо!

ответ

0

может быть что-то like this:

^(?=.*3003310)(?!.*\bs=1\b).* 

положительный предпросмотр, а отрицательные, для каждого состояния. границы \b вокруг s=1 предотвращают ложные срабатывания, такие как sass=1 или s=100.

+0

Спасибо, миллионы. Он работает как прелесть. – PeterPan

0

REGEXP:

(.*\?s=1.*) 

и должны сделать метод, если результат равен регулярное выражение матч. он вернет FALSE else TRUE.

Оригинальный текст:

http://stackoverflow.com/questionsss/3003310 -> true 
http://stackoverflow.com/questionsss/3003310?s=1 -> false (s=1 found) 
http://stackoverflow.com/questionsss?s=1&N=3003310 -> false (s=1 found) 

Результат:

http://stackoverflow.com/questionsss/3003310?s=1 -> false (s=1 found) 
http://stackoverflow.com/questionsss?s=1&N=3003310 -> false (s=1 found) 

Алгоритм:

Print(!OriginalText.equals(MethodCheck(Result)) // if empty. it will be TRUE 

См: https://regex101.com/r/335HNW/1

+0

Спасибо за помощь. Однако это не то, что я хочу. – PeterPan