2012-07-17 63 views
0

我已经应用了文本框点击验证,并希望避免在文本框中的任何HTML标记也简单<(打开标记)和>(关闭标记)。下面的代码工作,但我想添加额外的验证,也为空字符串和其他标签在HTML中。有人可以帮助修改正则表达式的要求。正则表达式,以避免HTML标记和空值

function htmlValidation() 
{ 
    var re = /(<([^>]+)>)/gi; 

    if (document.getElementById(’<%=TextBox2.ClientID%>’).value.match(re)){ document.getElementById(’<%=TextBox2.ClientID%>’).value = “”; 
      return false; 
     } 
    return true; 
} 

更正后的代码上面

+0

我不完全明白你的要求是什么。你是否想要允许特定的标签,或者你想要什么样的行为? – amon 2012-07-17 10:13:26

+0

我想排除文本框中的任何html标记...也不应该允许“<" and ">” – Pratik 2012-07-17 10:19:34

+0

为什么不['^ <>] +',并检查它是否不符合此模式。排除'<>'也将排除任何HTML标记。 – RoadBump 2012-07-17 10:19:40

回答

0
$("#<%= btnAdd.ClientID %>").click(function() { 
      var txt = $("#<%= txtBox1.ClientID %>"); 
      var svc = $(txt).val(); //Its Let you know the textbox's value 
      var re = /(<([^>]+)>)/gi; 
      if(txt.val()!=""){ 
      if (!txt.val().match(re)) { 
       //my Operations 
       //goes here 
       }); 
       return false; 
      } 
      else { 
       alert("Invalid Content"); 
      } 
      } 
      else { 
      alert("Blank value selected"); 
      } 

我已经使用jQuery函数来检查正规表示法。这个问题是一个链接的问题与 Using Jquery to add items in Listbox from Textbox

现在我可以标记这是我的最终答案。

3

在我看来,我相信你就会有一个好辛苦,如果你想验证这样的事情。

除了防止在文本框中的HTML内容,其他解决方案可能只是HTML实体编码文本属性,所以<p>a</p>将被转换为&gt;p&lt;a&gt;p&lt;

这样做的结果是您将呈现HTML“作为文本”而不​​是通过Web浏览器来解释它。

检查这个MSDN文章:

+0

我验证客户端的用户输入,并且存在需要考虑不允许使用html标记的问题,因为它会挂起其他进程。所以我即时通讯只寻求解决一个点击事件。如果我得到一些答案将definelty发布在这里 – Pratik 2012-07-17 12:36:36

+0

@PratikGupta但是,如果你这样做,你的过程将按预期工作,因为你不会有HTML! – 2012-07-17 12:41:13

+0

有很多地方,我特别不希望任何特殊的操作员,因为这会给处理的计算赋予不同的含义,因此我想在前端而不是在服务器端过滤这些东西。 – Pratik 2012-07-18 15:50:02