【发布时间】:2012-01-31 17:36:40
【问题描述】:
我在制作这个正则表达式时遇到了一些麻烦:
如果输入包含此符号 "<" 后跟一个字母,我只是希望正则表达式测试失败,例如:<[^a-zA-Z]
但即使没有找到"<",我也希望它能够工作。我该怎么做?
编辑:一些例子
<Wrong example
Wrong <Example
Good Example
< Good Example
Good < Example
Good< Example
Good Example<
编辑 2: 使用 asp.net 时,您不能在输入中发送包含此文本的表单,例如:
<Previous
编辑 3: 此正则表达式将在我无法更改的控件中传递,它通过使用正则表达式验证输入来工作。因此我无法匹配错误的输入
【问题讨论】:
-
举个例子。有些有效,有些无效。
-
“工作”是什么意思? “即使找不到
<1也可以工作”是什么意思?如果源字符串包含由小于号 (<) 后跟除大写或小写字母 A-Z 之外的任何单个字符组成的两个字符序列,则您提供的正则表达式将匹配(成功)。如果源字符串不包含该序列,它将不匹配(失败)。你到底想完成什么? -
假设我在表单上有一个 html 输入,我不希望用户在字符后面写小于号,因为这会导致错误。应用服务器会崩溃,因为它会认为这可能是一种破坏安全性的尝试,例如脚本攻击
-
@GianT971:正如您所知,这个问题的“正确答案”不是使用正则表达式,而是 HTML 转义您可能在页面上显示的任何内容(因为它存储在数据库或每次显示时)。
-
我希望我能多次支持@Platinum Azure 的评论。