VBS當中有Mid函數,一般形式為:Mid(str,start,len) 對應於JS就類似於:str.substr(start,len)
不過區別的是:VBS中start從1開始,而JS從0開始.
<script>
//substr(start,length) : 從字符串的start個開始截取,截取length個
//如果忽略length,則截取到尾.如果length為0或負,則返回空字符串
//從第0個開始截取,截取到尾(相當於作白用功,基本不這么調用!)
var e1 = ( (e1='0123456789|'), e1.substr(0) );
//從第0個開始截取,截取長度為字符串的長度(相當於作白用功,基本不這么調用!)
var e2 = ( (e2='0123456789|'), e2.substr(0,e2.length) );
//從第0個開始截取,截取長度為字符串的長度減1(相當於去掉尾部1個字符)
var e3 = ( (e3='0123456789|'), e3.substr(0,e3.length-1) );
//從第0個開始截取,截取長度為字符串的長度減2(相當於去掉尾部2個)
var e4 = ( (e4='0123456789|'), e4.substr(0,e4.length-2) );
//......
//從第0個開始截取,截取長度為字符串的長度減M(相當於去掉尾部M個)
var M
eN = ( (eN='0123456789|'),(M=5), eN.substr(0,eN.length-M) );
//從第0個開始截取,截取到尾(相當於作白用功,基本不這么調用!)
var s1 = ( (s1='0123456789|'), s1.substr(0) );
//從第1個開始截取,截取到尾(相當於頭部去掉1個字符!)
var s2 = ( (s2='0123456789|'), s2.substr(1) );
//從第2個開始截取,截取到尾(相當於頭部去掉2個字符!)
var s3 = ( (s3='0123456789|'), s3.substr(2) );
//......
//從第M個開始截取,截取長度為字符串的長度減M(相當於去掉頭部M個)
var M
sN = ( (sN='0123456789|'),(M=5), sN.substr(M) );
</script>
如果要精簡點調用,那么:
<script>
//所以對於原字符串要去掉尾部M個字符時,可以如上掉用,或者:
String.prototype.DeleteEnd = function(M)
{
return this.substr(0,this.length-M);
}
//對於去掉前M個的,直接可使用:sN.substr(M)
//當然,如果想對應於DeleteEnd,也可定義:
String.prototype.DeleteFront = function(M)
{
return this.substr(M);
}
</script>
統一一下形式,刪除以上的代碼,將其替換為如下:
<script>
//所以對於原字符串要去掉頭部M1個字符,又要去掉尾部M2個字符時,可以用:
//用Delete命名比較簡潔,但用DeleteSides則比較現義
String.prototype.Delete = String.prototype.DeleteSides = function(M1,M2)
{
return this.substr(0,this.length-M2).substr(M1);
}
</script>
調用:
<script>
var str1 = '0123456789|'.Delete(1,1); //'123456789'
var str2 = '0123456789|'.Delete(0,1); //'0123456789'
var str2 = '0123456789|'.Delete(1,0); //'123456789|'
var str2 = '0123456789|'.Delete(2,3); //'234567'
</script>
一般使用Delete擴展函數就可以了(注意擴展函數都以大寫命名,區別於原有的函數)
