2014-12-06 4 views
1

У меня есть строка и вам нужно проверить, включены ли несколько определенных слов в порядок.Как проверить, содержит ли строка несколько определенных слов?

Например предопределенные слова: ["one", "two", "three"]

Так строка: "one two three" должна возвращать верно, но строка с: "three two one" должен возвращать ложь.

Моего текущее регулярное выражение выглядит следующим образом: new RegExp('\\bone\\b\\two\\b\\three\\b')

К сожалению, это просто проверяет слова присутствуют, но не волнует, если они находятся в правильном порядке.

+1

Ваше регулярное выражение _does_ заботится о заказе. Но он не обрабатывает слова между ними, а также до/после проверенных слов. Вот решение: 'new RegExp ('. * \\ bone \\ b. * \\ btwo \\ b. * \\ bthree \\ b. *')'. Или динамически: 'new RegExp ('. * \\ b' + arr.join ('\\ b. * \\ b') + '\\ b. *')' –

+0

Хорошо, спасибо. Получил его – crispychicken

ответ

4

Вы можете просто использовать это регулярное выражение

var arr = ["one", "two", "three"]; 
var regex = new RegExp(arr.join(".*")); 

arr.join(".*") сделает регулярное выражение /one.*two.*three/

+2

+ 1 для более удобного кода с объединением массива. – blex

2

Вы можете использовать следующее регулярное выражение.

var re = /one.*two.*three/ 

Пример:

re.test('one two three'); // true 
re.test('three two one'); // false 
+0

эй, можете ли вы сделать расширение хром для http://regexdoc.com/re/explain.pl?re=Hi%3F&.submit=Explain%21&mode=SO&.cgifields=mode? –

+0

@AmitJoki Yea на самом деле в процессе выполнения. – hwnd

+1

отлично! Дайте мне знать, пинговая мне –

0

Сэр, пожалуйста, проверьте их, что это ошибка. Я не могу понять это. Код не появляется.

Вот всплывающее окно.

<li><a href="#"><i class="icon-envelope icon-2x" onClick="click();"></i></a></li> 

Это код javascript.

<script type="text/javascript" src="//www.klaviyo.com/media/js/public/klaviyo_subscribe.js"></script> 

    <script type="text/javascript"> 
    $(document).ready(function(){ 
    $('icon-envelope icon-2x').on('click',function(){ 
    KlaviyoSubscribe.attachModalSignUp({ 
     list: 'g9cZtX', 
     delay_seconds: 0.5, 
     content: { 
      clazz: ' klaviyo_modal_g9cZtX', 
      header: "Interested in our Newsletter?", 
      subheader: "Stay in the know with news and promotions.", 
      button: "Subscribe", 
      success: "Thanks! Check your email for a confirmation.", 
      styles: '.klaviyo_modal.klaviyo_modal_g9cZtX { font-family: "Helvetica Neue", Arial}.klaviyo_modal.klaviyo_modal_g9cZtX .klaviyo_header { color:#222;}.klaviyo_modal.klaviyo_modal_g9cZtX .klaviyo_subheader { color:#222;}.klaviyo_modal.klaviyo_modal_g9cZtX .klaviyo_submit_button,.klaviyo_modal.klaviyo_modal_g9cZtX .klaviyo_submit_button span { background-color:#07234F; background-image: none; border-radius: 2px;}.klaviyo_modal.klaviyo_modal_g9cZtX .klaviyo_submit_button:hover,.klaviyo_modal.klaviyo_modal_g9cZtX .klaviyo_submit_button span:hover { background-color:#2A4D85; background-image: none; }.klaviyo_modal.klaviyo_modal_g9cZtX .klaviyo_inner,.klaviyo_modal.klaviyo_modal_g9cZtX .klaviyo_fieldset .klaviyo_field_group input[type=text],.klaviyo_modal.klaviyo_modal_g9cZtX .klaviyo_fieldset .klaviyo_field_group input[type=email] { border-radius: 2px;}' 
     } 
    }); 
}); 
}); 
    </script> 
Смежные вопросы