js字符串截取函數


string str="123abc456";
int i=3;
1 取字符串的前i個字符

   str=str.Substring(0,i); // or  str=str.Remove(i,str.Length-i); 

2 去掉字符串的前i個字符:   

str=str.Remove(0,i);  // or str=str.Substring(i); 


3 從右邊開始取i個字符:

  str=str.Substring(str.Length-i); // or str=str.Remove(0,str.Length-i);

4 從右邊開始去掉i個字符:

   str=str.Substring(0,str.Length-i); // or str=str.Remove(str.Length-i,i);


5 判斷字符串中是否有"abc" 有則去掉

   using System.Text.RegularExpressions;
   string str = "123abc456";
   string a="abc";
   Regex r = new  Regex(a); 
   Match m = r.Match(str); 
   if (m.Success)
   {
    //綠色部分與紫色部分取一種即可。
      str=str.Replace(a,"");
      Response.Write(str);   
      string str1,str2;
      str1=str.Substring(0,m.Index);
      str2=str.Substring(m.Index+a.Length,str.Length-a.Length-m.Index);
      Response.Write(str1+str2); 
   }


6 如果字符串中有"abc"則替換成"ABC"

   str=str.Replace("abc","ABC");

 

1、js截取兩個字符串之間的內容:

var str = "aaabbbfff";
str = str.match(/aaa(\S*)fff/)[1];
alert(str);

結果bbb

 

2、js截取某個字符串前面的內容:

var str = "aaafff";
str = str.match(/(\S*)fff/)[1];
alert(str);

//結果aaa

 

3、js截取某個字符串后面的內容:

var str = "aaafff";
str = str.match(/aaa(\S*)/)[1];
alert(str);

//結果fff

 

 

js中字符截取函數有常用的三個分別是 slice()、substring()、substr()

用法:

slice(start,[end]),
substring(start,[end])
substr(start,[length])

  

相關屬性:

slice()
第一個參數代表開始位置,第二個參數代表結束位置的下一個位置,截取出來的字符串的長度為第二個參數與第一個參數之間的差;若參數值為負數,則將該值加上字符串長度后轉為正值;若第一個參數等於大於第二個參數,則返回空字符串.

substring()
第一個參數代表開始位置,第二個參數代表結束位置的下一個位置;若參數值為負數,則將該值轉為0;兩個參數中,取較小值作為開始位置,截取出來的字符串的長度為較大值與較小值之間的差.

substr()
第一個參數代表開始位置,第二個參數代表截取的長度

PS:字符串都從0開始計起

 

 

例子:

<script type="text/javascript">
      var stmp = "rcinn.cn";
      //使用一個參數
      alert(stmp.slice(3));//從第4個字符開始,截取到最后個字符;返回"nn.cn"
      alert(stmp.substring(3));//從第4個字符開始,截取到最后個字符;返回"nn.cn"

      //使用兩個參數
      alert(stmp.slice(1,5))//從第2個字符開始,到第5個字符;返回"cinn"
      alert(stmp.substring(1,5));//從第2個字符開始,到第5個字符;返回"cinn"

      //如果只用一個參數並且為0的話,那么返回整個參數
      alert(stmp.slice(0));//返回整個字符串
      alert(stmp.substring(0));//返回整個字符串

      //返回第一個字符

      alert(stmp.slice(0,1));//返回"r"
      alert(stmp.substring(0,1));//返回"r"

      //在上面的例子中我們可以看出slice()和substring()的用法是相同的
      //返回的值也是一樣的,但當參數為負數時,他們的返回值卻不一樣,看下面的例子
      alert(stmp.slice(2,-5));//返回"i"
      alert(stmp.substring(2,-5));//返回"rc"
      //從上面兩個例子可以看出slice(2,-5)實際上是slice(2,3)
      //負5加上字符串長度8轉換成正3(若第一位數字等於或大於第二位數字,則返回空字符串);
      //而substring(2,-5)實際上是substring(2,0),負數轉換為0,substring總是把較小的數作為起始位置。

      alert(stmp.substring(1,5))//從第2個字符開始,到第5個字符;返回"cinn"
      alert(stmp.substr(1,5));//從第2個字符開始,截取5個字符;返回"cinn."

</script>

 

substr 和 substring方法的區別

<script type="text/javascript"> 
var str = "0123456789";// 
alert(str.substring(0));//------------"0123456789" 
alert(str.substring(5));//------------"56789" 
alert(str.substring(10));//-----------"" 
alert(str.substring(12));//-----------"" 
alert(str.substring(-5));//-----------"0123456789" 
alert(str.substring(-10));//----------"0123456789" 
alert(str.substring(-12));//----------"0123456789" 
alert(str.substring(0,5));//----------"01234" 
alert(str.substring(0,10));//---------"0123456789" 
alert(str.substring(0,12));//---------"0123456789" 
alert(str.substring(2,0));//----------"01" 
alert(str.substring(2,2));//----------"" 
alert(str.substring(2,5));//----------"234" 
alert(str.substring(2,12));//---------"23456789" 
alert(str.substring(2,-2));//---------"01" 
alert(str.substring(-1,5));//---------"01234" 
alert(str.substring(-1,-5));//--------"" 
alert(str.substr(0));//---------------"0123456789" 
alert(str.substr(5));//---------------"56789" 
alert(str.substr(10));//--------------"" 
alert(str.substr(12));//--------------"" 
alert(str.substr(-5));//--------------"0123456789" 
alert(str.substr(-10));//-------------"0123456789" 
alert(str.substr(-12));//-------------"0123456789" 
alert(str.substr(0,5));//-------------"01234" 
alert(str.substr(0,10));//------------"0123456789" 
alert(str.substr(0,12));//------------"0123456789" 
alert(str.substr(2,0));//-------------"" 
alert(str.substr(2,2));//-------------"23" 
alert(str.substr(2,5));//-------------"23456" 
alert(str.substr(2,12));//------------"23456789" 
alert(str.substr(2,-2));//------------"" 
alert(str.substr(-1,5));//------------"01234" 
alert(str.substr(-1,-5));//-----------"" 
</script>

 

函數:split() 
功能:使用一個指定的分隔符把一個字符串分割存儲到數組
例子:

str=”jpg|bmp|gif|ico|png”;
arr=theString.split(”|”);
//arr是一個包含字符值”jpg”、”bmp”、”gif”、”ico”和”png”的數組

函數:John() 
功能:使用您選擇的分隔符將一個數組合並為一個字符串
例子:

var delimitedString=myArray.join(delimiter);
var myList=new Array(”jpg”,”bmp”,”gif”,”ico”,”png”);
var portableList=myList.join(”|”);
//結果是jpg|bmp|gif|ico|png

 

 函數:indexOf()
功能:返回字符串中匹配子串的第一個字符的下標

var myString=”JavaScript”;
var w=myString.indexOf(”v”);w will be 2
var x=myString.indexOf(”S”);x will be 4
var y=myString.indexOf(”Script”);y will also be 4

var z=myString.indexOf(”key”);z will be -1

 

在網上看到另一種非常簡單的方法,代碼如下:

  function func(s, n) {
    return s.replace(/([^x00-xff])/g, “$1a”).slice(0, n).replace(/([^x00-xff])a/g, “$1″);
  }

這個方法非常巧妙,而且基本上是正確的。說“基本上”是因為它在取“123漢字測試”左邊長度為 6 的子串時,它返回的是“123漢字”,而不是“123漢”。當然,這也並不一定就是問題,某些情況下需求可能就是這樣。這個方法還可以再改進一下,如下:

 function func(s, n) {
    return s.slice(0, n).replace(/([^x00-xff])/g, “$1a”).slice(0, n).replace(/([^x00-xff])a/g, “$1″);
  }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM