【问题标题】:Regular Expression to avoid HTML tags and empty values正则表达式以避免 HTML 标记和空值
【发布时间】:2012-07-17 10:07:12
【问题描述】:

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

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

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

以上代码更正

【问题讨论】:

  • 我不完全了解您的要求。你不想允许特定的标签,或者你到底想要什么行为?
  • 我想排除文本框中的任何 html 标签...而且“”也不应该被允许
  • 为什么不 [^&lt;&gt;]+ ,并检查它是否与此模式不匹配。排除 &lt;&gt; 也将排除任何 HTML 标记。
  • @RoadBump:仅当我们将您的正则表达式锚定在测试字符串的开头和结尾时才有效。
  • 虽然我不知道你到底在编码什么,但在很多情况下让用户更正他们的输入而不是你删除它会更好。 也可以转义,以便将它们视为文字,而不是 html 运算符

标签: c# javascript asp.net regex


【解决方案1】:

在我看来,如果你想验证这些东西,我相信你会努力工作。

除了阻止文本框中的 HTML 内容,其他解决方案可能只是 html 实体编码 Text 属性,因此 &lt;p&gt;a&lt;/p&gt; 将转换为 &amp;gt;p&amp;lt;a&amp;gt;p&amp;lt;

这样做的结果是您将把 HTML 呈现为“文本”,而不是让 Web 浏览器对其进行解释。

查看这篇 MSDN 文章:

【讨论】:

  • 我在客户端验证用户输入,并且需要考虑不允许使用 html 标签,因为它会挂起其他进程。所以我希望只解决一键事件。如果我得到一些答案,我会在这里明确发布
  • @PratikGupta 但是如果您这样做,您的流程将按预期工作,因为您将没有 HTML!
  • 有很多地方我特别不想要任何特殊运算符,因为这会给处理的计算带来不同的含义,因此我想在前端而不是在服务器端过滤这些东西。
  • @PratikGupta 我相信 HTML 实体不是特殊字符。如果您想了解更多详细信息,请详细说明您的案例。
  • 非常感谢您的帮助。我想我在自己的问题中找到了答案。我在 javascript 代码的注释中犯了一些错误。但现在它验证了所有 HTML 标签也包含在 中。我还检查了您的个人资料,这确实令人印象深刻。
【解决方案2】:
$("#<%= 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

现在我可以将此标记为我的最终答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多