1. 程式人生 > >javascript substring 字元擷取(支援中文)程式碼

javascript substring 字元擷取(支援中文)程式碼

substring() 方法用於提取字串中介於兩個指定下標之間的字元,擷取英文字串很簡單直接substring(0,url.length),如果是中文就str.charcodeat(i)>255判斷字元編碼是否是中文漢字編碼了。
*/

var url ='http://www.a.com/a.html';
var burl ='http://www.a.com/a.html#abc';

if( burl.substring(0,url.length) != url )
{
 alert('不匹配');
}
else
{
 alert(burl.substring(0,url.length));
}
/*
substring() 方法用於提取字串中介於兩個指定下標之間的字元。
語法
stringobject.substring(start,stop)

返回值
一個新的字串,該字串值包含 stringobject 的一個子字串,其內容是從 start 處到 stop-1 處的所有字元,其長度為 stop 減 start。

說明
substring() 方法返回的子串包括 start 處的字元,但不包括 end 處的字元。

如果引數 start 與 end 相等,那麼該方法返回的就是一個空串(即長度為 0 的字串)。如果 start 比 end 大,那麼該方法在提取子串之前會先交換這兩個引數。

*/
//中文字元擷取

function substr(str, len) {    
if(!str || !len) { return ''; }     
//預期計數:中文2位元組,英文1位元組    
var a = 0;      //迴圈計數    
var i = 0;      //臨時字串    
var temp = '';     
for (i=0;i<str.length;i++)   
{        
 if (str.charcodeat(i)>255)         
 {             //按照預期計數增加2           
   a+=2;        
  }        
  else        
  {           
    a++;        
   }         //如果增加計數後長度大於限定長度,就直接返回臨時字串        
   if(a > len) { return temp; }          //將當前內容加到臨時字串        
   temp += str.charat(i);    
   }     //如果全部是單位元組字元,就直接返回源字串    
   return str;
}
</script>