2015-04-06 2 views
1

Мне нужно создать регулярное выражение, которое может определить // пример или //www.example на URL-адресе веб-сайта. Я получаю расположение URL-адрес веб-сайта по,Регулярное выражение в javascript с условием ИЛИ

var urlOfWeb = location.href ; 

я создал регулярное выражение в JavaScript, который дает нерегулярный выход при запуске несколько раз. Я попробовал его в браузере/консоли firefox/Phpstorm IDE. Вот выражение,

// The regular expression 
    var expToLookFor = /(\/\/example|\/\/www\.example)/g; 
// Using test method of Regexp object of javascript which gives bool result 
expToLookFor.test("//example") ; 
// Result : true 
expToLookFor.test("//example") ; 
// Result : false 

enter image description here

+0

Избавьтесь от флага 'g' в вашем регулярном выражении. – Pointy

+1

Также было бы проще сделать '/ \/\/(?: www \.)? Example /' – Pointy

+1

@siddarth, здесь есть много вопросов относительно этой проблемы. Пожалуйста, сделайте поиск, прежде чем спрашивать. –

ответ

5

Удалить глобальный флаг из вашего регулярного выражения, чтобы сделать это:

var expToLookFor = /(\/\/example|\/\/www\.example)/; 

Лучше вы реорганизовать регулярное выражение:

var expToLookFor = /\/\/(www\.)?example/; 
+4

Это некоторые уродливые горы =) – hwnd

+1

@ Анубхава: Это сработало очень хорошо. Я бы выбрал ваш ответ после минуты вашего ответа, но мне пришлось ждать 15 минут, прежде чем я смогу выбрать ответ, должно быть какое-то правило stackoverflow. В любом случае, спасибо. –

+0

Добро пожаловать, рад, что это сработало. – anubhava

Смежные вопросы