2013-10-28 95 views
-1

嗨,大家好,我想知道如果我可以做一个正则表达式,以避免<和>在我的文本输入。 我想用正则表达式首先检查客户端。我只是有这个,但我不知道我怎么能做到消极,这将匹配,但我需要反面。 提前致谢!正则表达式避免htm标记

TextBoxRegularExpressionValidator.ValidationExpression = HtmlExpression(); 

private string HtmlExpression() 
{ 
    return @"<[^>]*>"; 

} 

例如,如果我在文本框中输入:<脚本>那么火的正则表达式验证,并告知用户不能键入它,因为不是一个有效的字符。

+0

我只是想验证我的客户端,当用户输入< and >字符,一般html打开和关闭标记... – user2528557

+0

这听起来像你真正想做的只是逃避你不想要的任何字符。例如,你可以用'<'替换'<',然后不用担心用户输入的内容。 – Gabe

回答

0

考虑以下...

var match = Regex.Match(input, "<.*>"); 
+0

我确实希望验证器在输入​​时触发,如果您知道我的意思...... – user2528557

+0

我很抱歉...我不完全理解这个问题。你能详细说明一下(也许有一个例子)? – gpmurthy

+0

@gpmurthy他希望它匹配括号内的* not *的所有内容,而不是匹配括号内*之间的所有内容。 – Servy

0

因此,这里是你可以使用正则表达式。

((?<=^)|(?<=>)).*?((?=<)|(?=$)) 

它已回顾后的线的开始或在>,并且当它到达一个<或行的结尾结束。

当然,使用Regex来解析任何通用的HTML通常不是一个好主意,因为HTML并不仅仅是遵循这种模式的节点。除非您知道您的输入是特定于HTML/XML的子集,否则您应该使用适当的解析器。

+0

避免用户输入恶性字符的最佳做法是什么?对不起,但正则表达式没有工作:( – user2528557