我想要匹配的url路由只有url参数
router.get('/:id',function(req,res,next){
}
现在问题是其他网址如test,favicon都匹配此路径。我想只匹配像hash一样的url路径和其他相关的随机哈希字符串。
%242a%2410%24mbh0scotTihKwL69eKwVBuSoAShai4Qo8yY0HLPRlh0Pq0ospfAcm
我尝试使用正则表达式但是,我似乎没有让我的正则表达式匹配。
[a-z0-9][-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/]{50,}$
我想匹配任何长度为50或以上的特殊字符的字符串。任何人都可以帮助我吗?谢谢
答案 0 :(得分:1)
我希望匹配任何长度为50及以上的特殊字符的字符串
在这种情况下,您可以使用following pattern:
^[-a-zA-Z0-9!$%^&*()_+|~=`{}\[\]:";'<>?,.\/]{50,}$
但是,如果您需要将第一个字符串作为ASCII字母或数字,则可以通过将模式重写为this one来完成:
^[a-zA-Z0-9][-a-zA-Z0-9!$%^&*()_+|~=`{}\[\]:";'<>?,.\/]{49,}$
^^^^^^^^^^^ ^^^^
或者使用前瞻(以便将50
作为min参数)(参见this demo):
^(?=[a-zA-Z0-9])[-a-zA-Z0-9!$%^&*()_+|~=`{}\[\]:";'<>?,.\/]{50,}$
在所有情况下,主要的一点是你需要在结束/调整字符类边界时调整限制量词,并确保使用^
,如果你的子字符串是字符串的开头。如果不是,则应将其删除。