如何测试字符串是否按顺序包含多个已定义的单词?

时间:2014-12-06 13:52:34

标签: javascript regex

我有一个字符串,需要测试是否按顺序包含多个定义的单词。

例如,预定义的单词是:["one", "two", "three"]

因此,带有"one two three"的字符串应返回true,但带有"three two one"的字符串应返回false。

我目前的正则表达式如下:new RegExp('\\bone\\b\\two\\b\\three\\b')

不幸的是,这只是检查单词是否存在但是如果它们的顺序正确则不关心。

3 个答案:

答案 0 :(得分:4)

你可以使用这个正则表达式

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

arr.join(".*")将制作正则表达式/one.*two.*three/

答案 1 :(得分:2)

您可以使用以下正则表达式。

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

示例:

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

答案 2 :(得分: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>