JavaScript的URL传参时参数带"?"不好截取处理
问题情景
JavaScript的用URL传递参数时,如果用URL以"?“加上”&"的方式传参,接收到参数后需要截取,但是参数包含了“?”导致不好截取。
另外,如果给后台传参,使用post不会有乱码问题参数,get则不然
处理方式
使用encodeURIComponent()转码参数,函数可把字符串作为 URI 组件进行编码
encodeURIComponent(URIstring)
如果需要用js解码,代码参考
decodeURIComponent(URIstring)
encodeURIComponent介绍
-
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ’ ( )
-
其他字符(比如 :; / ? : @ & = + $ , # 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的
encodeURIComponent() 函数 与 encodeURI() 函数的区别
encodeURIComponent() 函数 与 encodeURI()函数的区别之处,前者假定它的参数是 URI的一部分(比如协议、主机名、路径或查询字符串)。因此encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。
参考文档
JavaScript encodeURIComponent() 函数 w3school
(全文完)
欢迎光临:松果前端开发导航