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
我想知道这是否可能 在发送之前删除可能由某人在我的 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:
中使用正则表达式从文本中删除 HTMLfunction 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