js截取字符串第一个汉字

背景:

对接第三方接口需要传个age和ageTyoe字段,其中age字段为integer型,ageType取“岁/月/天”,但是我们系统存的年龄格式为N岁M月,或者为P天,这样就需要把拿到的年龄字符串截取一下,拿到第一个单位和数字,比如3岁5月6天,我要拿到age为3,ageType为岁;

解决问题代码

function getAge(){
   var str = '3岁5月6天';
   var index = escape(str).indexOf( "%u" );
   if(index > 0){
       var age = str.substring(0,index);
       var ageType = str.substring(index,index+1);
   }
}

原理

escape对字符串进行编码时,字符值大于255的以"%u****"格式存储,而字符值大于255的恰好是非英文字符(一般是中文字符,非中文字符也可以当作中文字符考虑);indexOf用以判断在字符串中是否存在某子字符串,找不到返回"-1";

你可能感兴趣的:(js)