×

jsescape函数

jsescape函数(js中的escape方法有什么用)

admin admin 发表于2023-12-08 12:35:51 浏览42 评论0

抢沙发发表评论

本篇文章给大家谈谈jsescape函数,以及js中的escape方法有什么用对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

本文目录

js中的escape方法有什么用

escape()和unescape()是一对编码解码函数,一般用于URL中非ASCII字符的编码和解码!如:escape("&")返回%26,unescape("%26")返回&,都用十六进制编码! 这个函数在AJAX技术应用中发送中文字串很有用,特别是AJAX向GB2312编码的ASP程序发送中文时很有用! 如:要将name="东方不败"发给red.asp(asp为gb2312如果为UTF-8的话就不用编码)前先做escape(name),这样发到red.asp时中文就不会乱码,指接用request接收就行了!

JS函数如何传递带空格参数

Javascript函数中传递带空格的参数

       通常在页面中要让某些内容点击后产生点击事件(非页面跳转)都会使用onclick,但是这样不适于需要传递参数的情况,于是写成直接调用Javascript函数的方式:《a href=javascript:somefunction(args)》content《/a》。注意,这么写是有问题的,问题就在于somefunction中的参数args的值不能含有空格,否则浏览器会认为空格后面的内容是《a》标签的某个属性,正确的写法应该是用引号将javascript:somefunction(args)引起来。另外还有一种方法可不必加这对引号,先将可能带空格的参数用escape函数处理一下,然后在somefunction中用unescape函数解码就行了。值得注意的是用encodeURI、decodeURI加解码却不能成功。

 encodeURIComponent和decodeURIComponent三对组合之间的区别:

  1. escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

    encodeURI不编码字符有82个:!,#,$,&,’,(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

    encodeURIComponent不编码字符有71个:!, ’,(,),*,-,.,_,~,0-9,a-z,A-Z

  2.        简单总结一下用法,在不经过URL的时候,即纯Javascript调用用escape;涉及URL时,通常用encodeURI对整个URL进行处理,仅当URL中含有特殊参数时,对该特殊参数局部使用encodeURIComponent。

js三种编码格式

js中有三个函数是用于编码的,他们是 escape(),encodeURI(),encodeURIComponent()函数。

而相对应的解码函数式:unescape,decodeURI,decodeURIComponent 。

对 String 对象编码以便它们能在所有计算机上可读。

escape 方法返回一个包含了 charstring 内容的字符串值( Unicode 格式)。所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20" 。

字符值大于 255 的以 %uxxxx 格式存储。

**注意 escape 方法不能够用来对统一资源标示码 (URI) 进行编码。对其编码应使用 encodeURI 和encodeURIComponent 方法。

(转)该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ’ ( ) 。其他所有的字符都会被转义序列替换。

但是会编码(;/?:@&=+$,#)这些在地址栏中经常用到的特殊字符

**

将文本字符串编码为一个有效的统一资源标识符 (URI)。

说明:

encodeURI 方法返回一个编码的 URI。如果您将编码结果传递给 decodeURI,那么将返回初始的字符串。encodeURI 方法不会对下列字符进行编码:":"、"/"、";" 和 "?"。请使用 encodeURIComponent 方法对这些字符进行编码。

此方法是不会将(;/?:@&=+$,#)这些字符编码

说明:URIComponent 是一个完整的 URI 的一部分。

如果 encodedURIString 无效,将产生一个 URIError。

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ’ ( ) 。

但是会编码(;/?:@&=+$,#)这些在地址栏中经常用到的特殊字符

javascript的全局函数有哪些

全局函数与内置对象的属性或方法不是一个概念。全局函数它不属于任何一个内置对象。JavaScript 中包含以下 7 个全局函数,用于完成一些常用的功能:escape( )、eval( )、isFinite( )、isNaN( )、parseFloat( )、parseInt( )、unescape( )。

对于JS 中编码(encode)和解码(decode)的三种方法

JS对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 下面简单介绍一下它们的区别 1 escape()函数 定义和用法  escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。 语法  escape(string) 参数  描述  string  必需。要被转义或编码的字符串。 返回值  已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。 说明  该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ’ ( ) 。其他所有的字符都会被转义序列替换。2 encodeURI()函数  定义和用法  encodeURI() 函数可把字符串作为 URI 进行编码。 语法  encodeURI(URIstring) 参数  描述  URIstring  必需。一个字符串,含有 URI 或其他要编码的文本。 返回值  URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。 说明  该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ’ ( ) 。 该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#3 encodeURIComponent() 函数 定义和用法  encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。 语法  encodeURIComponent(URIstring) 参数  描述  URIstring  必需。一个字符串,含有 URI 组件或其他要编码的文本。 返回值  URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。 说明  该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ’ ( ) 。 其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。 提示和注释  提示:请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。4 总结:  通过对三个函数的分析,我们可以知道:escape()除了 ASCII 字母、数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法。而encodeURI() 用于编码整个URI,因为URI中的合法字符都不会被编码转换。encodeURIComponent方法在编码单个URIComponent(指请求参数)应当是最常用的,它可以讲参数中的中文、特殊字符进行转义,而不会影响整个URL。 1、   传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。  例如:document.write(’ 退出 2、   进行url跳转时可以整体使用encodeURI ***隐藏网址*** 3、   js使用数据时可以使用escape 例如:搜藏中history纪录。 4、   escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。 最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同) escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z encodeURI不编码字符有82个:!,#,$,&,’,(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z encodeURIComponent不编码字符有71个:!, ’,(,),*,-,.,_,~,0-9,a-z,A-Z 示例(摘自 W3School): 1 escape() document.write(escape("Visit W3School!") + " ") document.write(escape("?!=()#%&")) 输出结果: Visit%20W3School%21 %3F%21%3D%28%29%23%25%26 2 encodeURI() ***隐藏网址*** ") ***隐藏网址*** ") document.write(encodeURI(",/?:@&=+$#")) 输出结果: ***隐藏网址*** ***隐藏网址*** ,/?:@&=+$# 对整个URL进行编码,而URL的特定标识符不会被转码。 3  encodeURIComponent() 例1: ***隐藏网址*** document.write(" ") ***隐藏网址*** document.write(" ") document.write(encodeURIComponent(",/?:@&=+$#")) 输出结果: ***隐藏网址*** ***隐藏网址*** %2C%2F%3F%3A%40%26%3D%2B%24%23 对URL中的参数进行编码,因为参数也是一个URL,如果不编码会影响整个URL的跳转。

浏览器编码函数escape(),encodeURI(),encodeURIComponent()的区别

1、escape() escape()是js编码函数中最古老的一个。实际上,escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。比如“你好”的返回结果是"%u4F60%u597D"。无论网页的原始编码是什么,一旦被Javascript编码,就都变为unicode字符。也就是说,Javascipt函数的输入和输出,默认都是Unicode字符。 2、encodeURI() encodeURI是对整个URL进行编码,因此除了常见的符号以外,对其他一些在网址中有特殊含义的符号“; / ? : @ & = + $ , #”,也不进行编码。编码后,它输出符号的utf-8形式,并且在每个字节前加上%,需要注意的是,它不对单引号’编码。 它对应的解码函数是decodeURI()。 3、encodeURIComponent() 与encodeURI()的区别是,它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。因此,“; / ? : @ & = + $ , #”,这些在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码,所以encodeURIComponent()相比encodeURI()要更加彻底。至于具体的编码方法,两者是一样。 它对应的解码函数是decodeURIComponent()。

js有哪几种典型函数

第一类:常规函数包括以下9个函数:(1)alert函数:显示一个警告对话框,包括一个OK按钮。(2)confirm函数:显示一个确认对话框,包括OK、Cancel按钮。(3)escape函数:将字符转换成Unicode码。(4)eval函数:计算表达式的结果。(5)isNaN函数:测试是(true)否(false)不是一个数字。(6)parseFloat函数:将字符串转换成符点数字形式。(7)parseInt函数:将符串转换成整数数字形式(可指定几进制)。(8)prompt函数:显示一个输入对话框,提示等待用户输入。第二类:数组函数包括以下4个函数:(1)join函数:转换并连接数组中的所有元素为一个字符串。(2)langth函数:返回数组的长度。(3)reverse函数:将数组元素顺序颠倒。(4)sort函数:将数组元素重新排序。第三类:日期函数包括以下20个函数:(1)getDate函数:返回日期的“日”部分,值为1~31(2)getDay函数:返回星期几,值为0~6,其中0表示星期日,1表示星期一,...,6表示星期六(3)getHours函数:返回日期的“小时”部分,值为0~23。(4)getMinutes函数:返回日期的“分钟”部分,值为0~59。见上例。(5)getMonth函数:返回日期的“月”部分,值为0~11。其中0表示1月,2表示3月,...,11表示12月。见前面的例子。(6)getSeconds函数:返回日期的“秒”部分,值为0~59。见前面的例子。(7)getTime函数:返回系统时间。(8)getTimezoneOffset函数:返回此地区的时差(当地时间与GMT格林威治标准时间的地区时差),单位为分钟。(9)getYear函数:返回日期的“年”部分。返回值以1900年为基数,例如1999年为99。(10)parse函数:返回从1970年1月1日零时整算起的毫秒数(当地时间)。(11)setDate函数:设定日期的“日”部分,值为0~31。(12)setHours函数:设定日期的“小时”部分,值为0~23。(13)setMinutes函数:设定日期的“分钟”部分,值为0~59。(14)setMonth函数:设定日期的“月”部分,值为0~11。其中0表示1月,...,11表示12月。(15)setSeconds函数:设定日期的“秒”部分,值为0~59。(16)setTime函数:设定时间。时间数值为1970年1月1日零时整算起的毫秒数。(17)setYear函数:设定日期的“年”部分。(18)toGMTString函数:转换日期成为字符串,为GMT格林威治标准时间。(19)setLocaleString函数:转换日期成为字符串,为当地时间。(20)UTC函数:返回从1970年1月1日零时整算起的毫秒数,以GMT格林威治标准时间计算。第四类:数学函数函数有以下18个:(1)abs函数:即Math.abs(以下同),返回一个数字的绝对值。(2)acos函数:返回一个数字的反余弦值,结果为0~π弧度(radians)。(3)asin函数:返回一个数字的反正弦值,结果为-π/2~π/2弧度。(4)atan函数:返回一个数字的反正切值,结果为-π/2~π/2弧度。(5)atan2函数:返回一个坐标的极坐标角度值。(6)ceil函数:返回一个数字的最小整数值(大于或等于)。(7)cos函数:返回一个数字的余弦值,结果为-1~1。(8)exp函数:返回e(自然对数)的乘方值。(9)floor函数:返回一个数字的最大整数值(小于或等于)。(10)log函数:自然对数函数,返回一个数字的自然对数(e)值。(11)max函数:返回两个数的最大值。(12)min函数:返回两个数的最小值。(13)pow函数:返回一个数字的乘方值。(14)random函数:返回一个0~1的随机数值。(15)round函数:返回一个数字的四舍五入值,类型是整数。(16)sin函数:返回一个数字的正弦值,结果为-1~1。(17)sqrt函数:返回一个数字的平方根值。(18)tan函数:返回一个数字的正切值。第五类:字符串函数包括以下20个函数:(1)anchor函数:产生一个链接点(anchor)以作超级链接用。anchor函数设定《A NAME...》的链接点的名称,另一个函数link设定《A HREF=...》的URL地址。(2)big函数:将字体加到一号,与《BIG》...《/BIG》标签结果相同。(3)blink函数:使字符串闪烁,与《BLINK》...《/BLINK》标签结果相同。(4)bold函数:使字体加粗,与《B》...《/B》标签结果相同。(5)charAt函数:返回字符串中指定的某个字符。(6)fixed函数:将字体设定为固定宽度字体,与《TT》...《/TT》标签结果相同。(7)fontcolor函数:设定字体颜色,与《FONT COLOR=color》标签结果相同。(8)fontsize函数:设定字体大小,与《FONT SIZE=n》标签结果相同。(9)indexOf函数:返回字符串中第一个查找到的下标index,从左边开始查找。(10)italics函数:使字体成为斜体字,与《I》...《/I》标签结果相同。(11)lastIndexOf函数:返回字符串中第一个查找到的下标index,从右边开始查找。(12)length函数:返回字符串的长度。(不用带括号)(13)link函数:产生一个超级链接,相当于设定《A HREF=...》的URL地址。(14)small函数:将字体减小一号,与《SMALL》...《/SMALL》标签结果相同。(15)strike函数:在文本的中间加一条横线,与《STRIKE》...《/STRIKE》标签结果相同。(16)sub函数:显示字符串为下标字(subscript)。(17)substring函数:返回字符串中指定的几个字符。(18)sup函数:显示字符串为上标字(superscript)。(19)toLowerCase函数:将字符串转换为小写。(20)toUpperCase函数:将字符串转换为大写。

如何在C++中实现javascript中的escape/unescape

function escape($string, $in_encoding = ’UTF-8’,$out_encoding = ’UCS-2’) { $return = ’’; if (function_exists(’mb_get_info’)) { for($x = 0; $x 《 mb_strlen ( $string, $in_encoding ); $x ) { $str = mb_substr ( $string, $x, 1, $in_encoding ); if (strlen ( $str ) 》 1) { // 多字节字符 $return .= ’%u’ . strtoupper ( bin2hex ( mb_convert_encoding ( $str, $out_encoding, $in_encoding ) ) ); } else { $return .= ’%’ . strtoupper ( bin2hex ( $str ) ); } } } return $return; }/***js unescape php 实现*/function unescape($str) { $ret = ’’; $len = strlen($str); for ($i = 0; $i 《 $len; $i ) { if ($str == ’u’) { $val = hexdec(substr($str, $i 2, 4)); if ($val 《 0x7f) $ret .= chr($val); else if ($val 《 0x800) $ret .= chr(0xc0 | ($val 》》 6)) . chr(0x80 | ($val & 0x3f)); else $ret .= chr(0xe0 | ($val 》》 12)) . chr(0x80 | (($val 》》 6) & 0x3f)) . chr(0x80 | ($val & 0x3f));资料来自百度,希望能有帮助,这个在网上能找到的好吧我错了。。。不过把代码换一种形式也可以到C++

JavaScript中escape和unescape函数用法

escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。语法escape(string)参数描述string必需。要被转义或编码的字符串。返回值已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。说明该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ’ ( ) 。其他所有的字符都会被转义序列替换。提示和注释提示:可以使用 unescape() 对 escape() 编码的字符串进行解码。用法与escape()一样。举例:《script type="text/javascript"》document.write(escape("Visit W3School!") + "《br /》")document.write(escape("?!=()#%&"))《/script》输出:Visit%20W3School%21%3F%21%3D%28%29%23%25%26注释:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。

js Array被escape后怎么还原

问题的结果是无法直接还原 原因:首先看escape函数, escape(string), 在函数调用时escape(Array)已经发生了类型转换,相当于escape(Array.toString)的效果,toString这种不可逆的类型转换结果,参与了整个escape和unescape,最终结果还是回到了Array.toString,如果确实需要逆向转换,下面探讨一下Array.toString之后的结果与逆向应对实例var arr = ; //数组实例var arrEscape = escape(arr); //编码,前面已经讲过arr会被类型转换,不必在意转换后的结果var arrUnescape = unescape(arrEscape); //反编码,值实际就是arr.toString效果的值:1,2,3 到此我们需要做的就是将arr.toString逆向成数组, 即1,2,3转换到,处理方法有几种,最直观的是使用split(’,’),当然也可以使用eval 代码如下:var arr = ;var arrEscape = escape(arr);var arrUnescape = unescape(arrEscape); var oArr = arrUnescape.split(’,’); //oArr即为还原的数组

js中的escape方法有什么用的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于js中的escape方法有什么用、js中的escape方法有什么用的信息别忘了在本站进行查找哦。