如何只允许一个/正则表达式

时间:2017-02-26 16:17:30

标签: c# asp.net xml

我的正则表达式看起来像"[a-æøåA-ÆØÅ0-9-/().\s]{1,100}$"。我想允许来自文本框的用户输入中的一个/,例如比如"3/4 inch fitting bla bla"。 我怎样才能以安全的方式做到这一点,它是否安全? 我的查询看起来像这样。

XmlElement bemærkning = xmldoc.CreateElement("Bemærkning");
bemærkning.InnerText = txtBemærkningWT.Text;

//XmlElement usernamePCxml = xmldoc.CreateElement("UsernamepcXML");
//usernamePCxml.InnerText = usernamePC.ToString();

parentelement.AppendChild(type);
parentelement.AppendChild(art);
parentelement.AppendChild(l);
parentelement.AppendChild(bemærkning);
parentelement.AppendChild(varenummer);
parentelement.AppendChild(opretter);
parentelement.AppendChild(date);

//parentelement.AppendChild(usernamePCxml);

xmldoc.DocumentElement.AppendChild(parentelement);
xmldoc.Save(Server.MapPath(map));

1 个答案:

答案 0 :(得分:0)

由于您还检查了字符总数{1,100},因此对于一个正则表达式没有简单的解决方案(我能想到)。最简单的方法可能是对/的出现或总长度进行单独检查。如果你单独检查总长度,你可以使用这样的正则表达式:

"^[a-æøåA-ÆØÅ0-9-().\s]*\/?[a-æøåA-ÆØÅ0-9-().\s]*$"

请注意,我在beginnin处添加了^以指示输入的开始。我不知道你的情况是否有必要,但可能是。

关于安全性:您正在使用InnerText,它会转义可能包含在输入中的标记,而InnerXml则不会。所以你应该没事。