正则表达式匹配哈希URL字符串

时间:2016-10-10 10:42:17

标签: javascript regex

我想要匹配的url路由只有url参数

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

现在问题是其他网址如test,favicon都匹配此路径。我想只匹配像hash一样的url路径和其他相关的随机哈希字符串。

%242a%2410%24mbh0scotTihKwL69eKwVBuSoAShai4Qo8yY0HLPRlh0Pq0ospfAcm 

我尝试使用正则表达式但是,我似乎没有让我的正则表达式匹配。

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

我想匹配任何长度为50或以上的特殊字符的字符串。任何人都可以帮助我吗?谢谢

1 个答案:

答案 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,}$

在所有情况下,主要的一点是你需要在结束/调整字符类边界时调整限制量词,并确保使用^,如果你的子字符串是字符串的开头。如果不是,则应将其删除。