2016-10-10 65 views
1

我有我想匹配的URL路徑只有URL參數正則表達式匹配散列URL字符串

router.get('/:id',function(req,res,next){ 
} 

現在的問題是其他URL測試一樣,所有的favicon匹配這條道路。我只想匹配哈希像的url路徑和其他隨機的相關哈希字符串。

%242a%2410%24mbh0scotTihKwL69eKwVBuSoAShai4Qo8yY0HLPRlh0Pq0ospfAcm 

我試過正則表達式,但是,我似乎沒有得到我的正則表達式匹配。

[a-z0-9][-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/]{50,}$ 

我想匹配任何長度爲50及以上的特殊字符的字符串。任何人都可以幫我嗎?謝謝

+0

我想你想寫'^ [ - a-zA-Z0-9!$%^&*()_ + |〜= \'{} \ [\]:「;'<>?,。 \] {50,} $'或'^ [a-zA-Z0-9] [ - a-zA-Z0-9!$%^&*()_ + |〜= \'{} \ [\ ]:「;」<>,\ /] {49,} $'。 –

回答

1

我想匹配與50的長度和上述

在這種情況下,特殊字符的任意字符串,你可以使用following pattern

^[-a-zA-Z0-9!$%^&*()_+|~=`{}\[\]:";'<>?,.\/]{50,}$ 

但是,如果需要要求第一個字符是ASCII字母或數字,您可以通過將模式重寫爲this one

^[a-zA-Z0-9][-a-zA-Z0-9!$%^&*()_+|~=`{}\[\]:";'<>?,.\/]{49,}$ 
^^^^^^^^^^^           ^^^^ 

,或者通過使用預讀(以保持50爲最小參數)(見this demo):

^(?=[a-zA-Z0-9])[-a-zA-Z0-9!$%^&*()_+|~=`{}\[\]:";'<>?,.\/]{50,}$ 

在所有的情況下,主要的一點是,你需要在調整限制量詞結束/移動字符類的邊界,並確保你使用^,字符串錨的開始,如果你的子字符串在字符串的開始。如果不是,你應該刪除它。