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

时间:2015-02-04 20:03:58

标签: jquery html serialization tags

我想知道在使用jQuery的serialize方法将此函数发送到服务器之前,是否可以删除我的html输入中某人插入的可能的html标签

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

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

console.log(superVariable.text());

//would simply return lalaladededeededelilili

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

我还可以停止使用serialize()方法并在每个输入上逐个删除所有可能的html标签,但我想看看如果可以在保持序列化的同时实现相同的结果(方法。

编辑:遵循Rory的评论

我应该在客户端进行哪种检查?

  • 是否需要输入。
  • 最大长度最小长度。
  • 修剪值以消除空格。

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

我是对的吗?

1 个答案:

答案 0 :(得分:1)

你是对的,Azuk。检查客户端和服务器上的所有内容,因为可以禁用客户端上的JavaScript。如果对您的应用程序很重要,我还会验证输入类型(Integer,DateTime,String)。

此外,您可以使用JavaScript中的Regex从文本中删除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