如何避免html把%3e号转义,什么时候使用转义代替encodeURI/encodeURIComponent?

260358b7047bd20e9cb531cacf2f9d83.png

函数式编程

逃脱()别用它!escape()在节中定义B.2.1.2逃跑而附件B的导言案文说:..本附件中规定的所有语言特性和行为都具有一个或多个不受欢迎的特性,如果没有遗留的使用,将从本规范中删除。....程序员在编写新的ECMAScript代码时不应该使用或假定这些特性和行为的存在。行为:https:/developer.mozilla.org/en-US/docs/web/JavaScript/Reference/Global_Objects/EXECH特殊字符被编码,但@*_+-./除外。字符的十六进制形式(其代码单位值为0xFF或更少)是两位数字转义序列:%xx.对于具有更大代码单元的字符,采用四位数格式。%uxxxx被利用了。在查询字符串中不允许这样做(如RFC 3986):query       = *( pchar / "/" / "?" )pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"unreserved   

 = ALPHA / DIGIT / "-" / "." / "_" / "~"pct-encoded   = "%" HEXDIG HEXDIGsub-delims    = "!" / "$" / "&" / "'" / "(" / ")"

              / "*" / "+" / "," / ";" / "="只有当百分比符号后面直接跟着两个六位数时,才允许使用百分比符号,百分比后面跟着两个六位数。u是不允许的。encodeURI()当您需要一个工作URL时,请使用encodeURI。打电话:encodeURI("http://www.example.org/a file with spaces.html")得到:http://www.example.org/a%20file%20with%20spaces.html不要调用encodeURIComponent,因为它会破坏URL并返回http%3A%2F%2Fwww.example.org%2Fa%20file%20with%20spaces.htmlencodeURIComponent()如果要编码URL参数的值,请使用encodeURIComponent。var p1 = encodeURIComponent("http://example.org/?a=12&b=55")然后,您可以创建所需的URL:var url = "http://example.net/?param1=" + p1 + "&param2=99";您将得到以下完整的URL:http://example.net/?param1=http%3A%2F%2Fexample.org%2F%Ffa%3D12%26b%3D55&param2=99注意,encodeURIComponent没有转义'性格。常见的错误是使用它创建html属性,如href='MyUrl'可能会有注射错误。如果要从字符串构造html,请使用"而不是'用于属性引号,或添加一层额外的编码('可以编码为%27)。有关这种编码类型的更多信息,请查看:http://en.wikipedia.org/wiki/Percent-encoding

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值