什么是“没有多个连字符或双引号允许的正则表达式!”

时间:2011-10-05 16:14:33

标签: asp.net regex

有谁能告诉我如何写这个正则表达式“没有多个连字符或双引号被授权!”? 我试过[^“ - ] *。但好看不会过去。

3 个答案:

答案 0 :(得分:2)

在这些行之间阅读,听起来像你可能试图通过阻止用户输入引号字符或SQL注释来阻止SQL注入攻击?如果这就是你想要做的事情,那么这就不是这样做的了。

您实际需要做的是确保您的字符串已正确转义。如果您的SQL字符串被正确转义,那么任何数量的连字符或引号都不会导致您出现问题,因此不需要阻止连字符或引号或任何其他危险字符。

答案 1 :(得分:1)

我假设你只是想测试一个字符串以确保它没有任何"--我会使用它:

("|--)

如果没有匹配,则字符串正常。

如果这不是您想要的,请提供更多信息+示例。

答案 2 :(得分:0)

Paul处于正确的轨道上,但如果你想要一个没有引号或双连字符的字符串的正则表达式为True,请使用否定前瞻断言:

^(?:(?!"|--).)*$