JQuery - 序列化表单并删除输入中可能的 html 标签

JQuery - serialize form and get rid of possible html tags inside inputs

我想知道这是否可能 在发送之前删除可能由某人在我的 html 输入中插入 的 html 标签这到服务器 使用 JQuery.

的序列化方法

我知道如何在不使用 serialize 方法的情况下做到这一点,例如,只需使用 .text() 方法,就像这样:

var superVariable =$("<h1>lalala<span>dededeedede</span><lilili/h1>");

console.log(superVariable.text());

//would simply return lalaladededeededelilili

但我根本不知道如何使用序列化方法实现这种结果,我知道在这种情况下我可以在服务器端使用 PHP 轻松去除标签,但我想这样做在发送数据之前,在客户端也是如此。

我也可以停止使用 serialize() 方法并在每个输入上一个一个地删除所有可能的 html 标签,但我想看看是否可以实现相同的效果结果同时保持 serialize() 方法。

编辑:根据 Rory

的评论

我应该在客户端完成哪种检查?

并且在服务器端,仍然可以禁用与 JS 相同的检查以及删除用户可能插入的 html 的所有检查?

我说得对吗?

你说得对,Azuk。检查客户端和服务器上的所有这些内容,因为可以禁用客户端上的 JavaScript。如果这对您的应用程序很重要,我还会验证输入类型(整数、日期时间、字符串)。

此外,您可以在 JavaScript:

中使用正则表达式从文本中删除 HTML
function stripHTML(text){
   var regex = /(<([^>]+)>)/ig;
   return text.replace(regex, "");
}
// USE: var str = stripHTML('<b>test</b>');

这是在这里讨论的: how do you strip html tags in textarea input