我有一个正则表达式,在ASP.NET页面路由中用于URL重写时可以正常使用.
但是,当我尝试在我的ASP.NET代码中的其他地方使用它时,它允许过去我不想要它的字符串.
我的正则表达式是,
[-_a-zA-Z0-9/]+(\.aspx(\?.+)?)?
Run Code Online (Sandbox Code Playgroud)
这意味着允许字符串文件/路径没有扩展名或.aspx文件扩展名,但不允许文件/路径与其他扩展名,例如."whatever.js".
我在我的应用程序的其他地方使用它没有成功,就像这样......
if (Regex.IsMatch(pageUrl, @"[-_a-zA-Z0-9/]+(\.aspx(\?.+)?)?"))
Run Code Online (Sandbox Code Playgroud)
似乎作为字符串匹配的一部分,它让它通过.但是如何确保整个字符串(pageUrl)匹配?
在开头和结尾使用^和$强制它生成整个字符串:
if (Regex.IsMatch(pageUrl, @"^[-_a-zA-Z0-9/]+(.aspx(\?.+)?)?$"))
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅"正则表达式中的锚点"的MSDN页面.
| 归档时间: |
|
| 查看次数: |
512 次 |
| 最近记录: |