我有一個字符串,需要測試是否包含多個定義的單詞。如何測試字符串是否按順序包含多個定義的單詞?
例如預定義的詞是:["one", "two", "three"]
所以用繩子:"one two three"
應該返回true,但有一個字符串:"three two one"
應該返回false。
我現在的正則表達式看起來像這樣:new RegExp('\\bone\\b\\two\\b\\three\\b')
不幸的是這只是檢查,如果字是存在的,但不關心,如果他們是在正確的順序。
我有一個字符串,需要測試是否包含多個定義的單詞。如何測試字符串是否按順序包含多個定義的單詞?
例如預定義的詞是:["one", "two", "three"]
所以用繩子:"one two three"
應該返回true,但有一個字符串:"three two one"
應該返回false。
我現在的正則表達式看起來像這樣:new RegExp('\\bone\\b\\two\\b\\three\\b')
不幸的是這只是檢查,如果字是存在的,但不關心,如果他們是在正確的順序。
你可以使用這個表達式
var arr = ["one", "two", "three"];
var regex = new RegExp(arr.join(".*"));
arr.join(".*")
將正則表達式/one.*two.*three/
+ 1。 – blex 2014-12-06 14:03:03
您可以使用下面的正則表達式。
var re = /one.*two.*three/
例子:
re.test('one two three'); // true
re.test('three two one'); // false
嘿,你可以爲http://regexdoc.com/re/explain.pl?re=Hi%3F&.submit=Explain%21&mode=SO&.cgifields=mode做一個擴展程序嗎? – 2014-12-06 14:02:41
@AmitJoki是的,它實際上正在完成。 – hwnd 2014-12-06 14:03:37
太棒了!通過ping我來告訴我 – 2014-12-06 14:04:24
先生,請檢查這些有什麼錯誤。我無法弄清楚這一點。代碼不會彈出。
這是彈出式單擊。
<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>
您的正則表達式_does_關心訂單。但它不處理中間的單詞以及檢查單詞之前/之後的單詞。 下面是解決方案:'new RegExp('。* \\ bone \\ b。* \\ btwo \\ b。* \\ bthree \\ b。*')'。或者是動態的:'new RegExp('。* \\ b'+ arr.join('\\ b。* \\ b')+'\\ b。*')' – 2014-12-06 13:55:34
好的,謝謝。通過數組連接獲得更多可維護代碼的 – crispychicken 2014-12-06 14:03:30