2015-05-29 74 views
1

如何檢查URL字符串是否不包含以下字符串:test/test/posts/search/1234567,這樣當我提供以下URL時:test/test/1234567match函數將返回:["test/test/1234567", "test/test/", "", "1234567"]檢查字符串是否不包含URL段並與其匹配

更新:

如果我在URL提供/posts/search我想忽略這個表達式中re.test(url)功能。

// var url = "test/test/posts/search/1234567"; // desired result: null 
 
var url = "test/test/1234567"; // result: ["test/test/1234567", "test/test/", undefined, "1234567"] 
 
var urlPrefix = 'test/test/'; 
 
var re = new RegExp('(' + urlPrefix + ')(posts\/search\/)([0-9]+)', 'i'); 
 
console.log(url.match(re));

+0

Can the輸出看起來像'[「test/test/1234567」,「test/test /」,undefined,「1234567」]'? –

+0

是的,這就夠了。 – luzny

回答

1

你就要成功了,你只需要進行第二個捕獲組可選的?量詞意思0或1次出現的,貪婪

var url = "test/test/posts/search/1234567"; // result: null 
 
var urlPrefix = 'test/test/'; 
 
if (!url.includes("posts/search/")) { 
 
    var re = new RegExp('(' + urlPrefix + ')(posts/search/)?([0-9]+)', 'i'); 
 
    //             ^ 
 
    console.log(url.match(re)); 
 
} 
 
else { 
 
console.log(url + " contains 'posts/search/'!"); 
 
}

+0

謝謝!我忘了添加,如果很容易如何實現這一點,我想在'test()'函數url中省略包含'posts/search /'的函數url? – luzny

+0

請檢查更新。我認爲'includes'是這裏正則表達式的一個不錯的選擇。 –

相關問題