如何编码和解码javascript或jquery中的所有特殊字符
How to encode and decode all special characters in javascript or jquery?
我希望能够使用javascript或jquery编码和解码所有以下字符…
~ ! @ # $ % ^和 ;*()_+|}{:"?>& lt ;,./';[]'=-`
我试着用这个来编码它们…
var cT = encodeURI(oM); // oM holds the special characters
cT = cT.replace(/[!"#$%&'()*+,.'/:;<=>?@[''']^`{|}~]/g, "''''$&");
对它们进行编码,或者对它们进行转义,但是我试图用这个做相反的事情…
decodeURIComponent(data.convo.replace(/'+/g, ' '));
但是,它没有以任何想要的方式出来。
我已经为jquery构建了一个聊天插件,但是如果有人输入一个特殊字符,脚本就会崩溃。我希望对特殊字符进行编码,然后当它们从数据库中取出时,应该对它们进行解码。在数据返回到ajax请求之前,我尝试在PHP中使用urldecode,但它出现了可怕的错误。
我认为存在一些函数来编码和解码所有的特殊字符。
哦,一个警告是我用html元素包装每个消息,所以我认为解码需要在服务器端完成,在消息包装之前,或者能够知道何时忽略有效的html标记并解码用户想要输入的其他字符。
我开始编码/转义它们是错误的吗?
这就是结果糟糕的原因吗?
这在javascript中非常简单
//Note that i have escaped the " in the string - this means it still gets processed
var exampleInput = "Hello there h4x0r ~!@#$%^&*()_+|}{:'"?><,./';[]'=-`";
var encodedInput = encodeURI(exampleInput);
var decodedInput = decodeURI(encodedInput);
console.log(exampleInput);
console.log(encodedInput);
console.log(decodedInput);
对输入进行编码和解码。如果脚本中出现了其他问题,这意味着您没有剥离正在处理的内容。很难给出一个准确的答案,因为您可以看到对URI标准进行编码和解码并不会导致崩溃。只有对这些内容处理不当才会导致问题。
当你用HTML输出内容时,你应该对HTML实体进行编码。
如果你需要在javascript中编码html实体来安全地在html中显示,请参考这个线程
关于html实体如何工作的额外参考可以在这里找到:W3学校- html实体和W3学校- html符号相关文章:
- 一个jquery验证器方法,它不接受纯数字或纯特殊字符,但接受上面是否有字母
- jQuery-Regex以防止任何特殊字符
- 如何使用JQuery检查输入(电子邮件)字段是否包含特殊字符
- 在粘贴到文本字段Jquery时检查并突出显示不支持的特殊字符
- 通过分离除“”之外的任何特殊字符来获得所有列表框值"通过jquery
- 如何使用jquery检测特殊字符
- Jquery处理ID中的特殊字符
- 计算 jQuery 中字符串中的特殊字符
- 在附加方法jquery validate中为特殊字符使用regex
- jQuery.getJSON无法在具有特殊字符的IE中工作
- 如何使用javascript/jquery/c#搜索和选择包含特殊字符的文本
- jquery在循环select中的项时转义特殊字符
- JavaScript/jQuery:在特殊字符和关闭html标记后插入空格
- javascript(jquery)函数中的转义特殊字符
- 在 jquery te 文本编辑器中添加特殊字符选项
- 如何使用 jQuery 发送包含特殊字符的查询字符串数据
- 属性中的 JQuery 和特殊字符
- 将文本上的特殊字符替换为 jquery
- 在 Jquery 中包装特殊字符
- 用于IE的Jquery特殊字符处理