如何计算编码字符串的长度?

时间:2013-03-16 18:44:56

标签: javascript jquery arabic

所以我有一个阿拉伯字符串然后我用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,我所知道的是阿拉伯语编码的字母组成如%(字母|数字)(字母|数字)

2 个答案:

答案 0 :(得分:1)

您正在将未编码的str传递给您的函数,而不是encd。因此,正则表达式不match,结果null在访问其length属性时抛出异常。

答案 1 :(得分:0)

尝试使用“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/

相关问题