【问题标题】:Regular expression to match hash URL string匹配哈希 URL 字符串的正则表达式
【发布时间】:2017-02-18 18:23:31
【问题描述】:

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

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

现在的问题是其他 url 像 test,favicon 都匹配这个路径。我只想匹配类似于散列的 url 路径和其他相关的随机散列字符串。

%242a%2410%24mbh0scotTihKwL69eKwVBuSoAShai4Qo8yY0HLPRlh0Pq0ospfAcm 

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

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

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

【问题讨论】:

  • 我想你想写^[-a-zA-Z0-9!$%^&amp;*()_+|~=`{}\[\]:";'&lt;&gt;?,.\/]{50,}$^[a-zA-Z0-9][-a-zA-Z0-9!$%^&amp;*()_+|~=`{}\[\]:";'&lt;&gt;?,.\/]{49,}$

标签: javascript regex


【解决方案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,}$

在所有情况下,重点是您需要在末尾调整限制量词/移动字符类边界并确保使用^,如果您的子字符串位于开头,则为字符串锚点的开头的字符串。如果不是,您应该删除它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 2013-12-25
    相关资源
    最近更新 更多