如何计算编码字符串的长度?
所以我有一个阿拉伯字符串然后我使用encodeURIComponent编码它,然后我尝试从编码的字符串知道长度,但这段代码不起作用的原因? http://jsfiddle.net/mCwaj/
var str="قال على"; var encd=encodeURIComponent(str); alert(encd); alert(custom_length(encd)); function custom_length(str){ var tab=str.match(/%../g); return tab.length; }
结果应该是7但是函数返回13,我所知道的是阿拉伯语编码的字母表组成像%(字母|数字)(字母|数字)
您正在将非编码的str
传递给您的函数而不是encd
。 因此,正则表达式不匹配 ,结果null
在访问其length
属性时抛出exception。
尝试使用“escape()”而不是“encodeURIComponent()”
//14 charachters var str="مرحبا أنا ياسر"; var result=custom_length(escape(str)); alert(result); //it'll display 14 function custom_length(str){ var tab=str.match(/%../g); return tab.length; }
演示: http://jsfiddle.net/ysinjab/KDyhp/
: http://jsfiddle.net/ysinjab/KDyhp/