Rumah  >  Artikel  >  hujung hadapan web  >  Ringkasan memintas rentetan dengan kemahiran javascript_javascript

Ringkasan memintas rentetan dengan kemahiran javascript_javascript

WBOY
WBOYasal
2016-05-16 16:01:501582semak imbas

Artikel ini meringkaskan dan memperkenalkan tiga kaedah memintas rentetan menggunakan Javascript Ia juga meringkaskan dua kaedah memintas rentetan Cina.

1. kaedah subrentetan

Takrif dan penggunaan
Kaedah subrentetan digunakan untuk mengekstrak aksara antara dua subskrip tertentu dalam rentetan.

Tatabahasa
stringObject.substring(mula,berhenti)

Penerangan Parameter
permulaan diperlukan. Integer bukan negatif yang menentukan kedudukan dalam stringObject bagi aksara pertama subrentetan untuk diekstrak.
berhenti adalah pilihan. Integer bukan negatif yang merupakan satu kedudukan dalam stringObject yang satu lebih daripada aksara terakhir subrentetan yang akan diekstrak. Jika parameter ini diabaikan, subrentetan yang dikembalikan akan pergi ke penghujung rentetan.

Nilai pulangan
Nilai rentetan baharu yang mengandungi subrentetan stringObject yang mengandungi semua aksara dari mula hingga henti-1 dan mempunyai panjang henti tolak permulaan.

Penerangan
Substring yang dikembalikan oleh kaedah substring termasuk aksara pada permulaan tetapi bukan aksara pada akhir.
Jika permulaan dan akhir adalah sama, maka kaedah ini mengembalikan rentetan kosong (iaitu rentetan panjang 0).
Jika permulaan lebih besar daripada akhir, kaedah menukar dua parameter sebelum mengekstrak subrentetan.
Jika permulaan atau akhir adalah negatif, ia digantikan dengan 0.
Kes penggunaan khusus:

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));--------"" 

kaedah 2.substr

Takrif dan penggunaan
Kaedah substr digunakan untuk mengembalikan subrentetan panjang tertentu bermula pada kedudukan yang ditentukan.

Tatabahasa
stringObject.substr(mula [, panjang ])

Penerangan Parameter
permulaan diperlukan. Kedudukan permulaan subrentetan yang dikehendaki. Aksara pertama dalam rentetan mempunyai indeks 0.
panjang adalah pilihan. Bilangan aksara yang harus disertakan dalam subrentetan yang dikembalikan.

Penerangan
Jika panjang ialah 0 atau negatif, rentetan kosong dikembalikan.
Jika parameter ini tidak dinyatakan, subrentetan akan diteruskan ke penghujung stringObject.

Kes penggunaan khusus:

var str = "0123456789"; 
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));-----------"" 

3. Kaedah tersuai

Dua kaedah di atas hanya boleh memintas bahasa Inggeris dan nombor tidak boleh anda lakukan apabila menggunakan bahasa Cina secara paksa akan membawa kepada aksara yang bercelaru selepas pensijilan dan penyelidikan saya sendiri, akhirnya saya merumuskan dua kaedah yang boleh menggunakan Javascript untuk memintas rentetan yang mengandungi kaedah Cina:

Kaedah pertama:

String.prototype.sub=function(n){ 
  var r=/[^\x00-\xff]/g; 
  if(this.replace(r,"mm").length<=n){return this;} 
  var m=Math.floor(n/2); 
  for(var i=m;i<this.length;i++){ 
    if(this.substr(0,i).replace(r,"mm").length>=n){ 
      return this.substr(0,i)+"..."; 
    } 
  } 
  return this; 
} 

Kaedah kedua:
//Rentetan pintasan, termasuk pemprosesan bahasa Cina, makna parameter: (rentetan, panjang pintasan, sama ada akan meningkat...)

function subString(str, len, hasDot){ 
  var newLength=0; 
  var newStr=""; 
  var chineseRegex=/[^\x00-\xff]/g; 
  var singleChar=''; 
  var strLength=str.replace(chineseRegex,'**').length; 
  for(var i=0;i < strLength;i++){ 
  singleChar=str.charAt(i).toString(); 
  if(singleChar.match(chineseRegex) != null){ 
    newLength+=2; 
  }else{ 
    newLength++; 
  } 
  if(newLength>len){ 
    break; 
  } 
  newStr+=singleChar; 
  } 
   
  if(hasDot && strLength>len){ 
    newStr+='...'; 
  } 
  return newStr; 
} 

Kaedah penggunaan khusus menggunakan Js untuk memintas rentetan Cina adalah seperti berikut:

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Javascript字符串截取处理总结(Js截取中文字符串总结)</title> 
<script language="javascript"> 
String.prototype.sub=function(n){var r=/[^\x00-\xff]/g;if(this.replace(r,"mm").length<=n){return this}var m=Math.floor(n/2);for(var i=m;i<this.length;i++){if(this.substr(0,i).replace(r,"mm").length>=n){return this.substr(0,i)+"..."}}return this}; 
function subString(str,len,hasDot){var newLength=0;var newStr="";var chineseRegex=/[^\x00-\xff]/g;var singleChar='';var strstrLength=str.replace(chineseRegex,'**').length;for(var i=0;i<strLength;i++){singleChar=str.charAt(i).toString();if(singleChar.match(chineseRegex)!=null){newLength+=2}else{newLength++}if(newLength>len){break}newStr+=singleChar}if(hasDot&&strLength>len){newStr+='...'}return newStr} 
</script> 
</head> 
<body> 
<script language="javascript"> 
var str='我爱www.jb51.net'; 
alert(str.sub(10)); 
alert(subString(str,10,false)); 
</script> 
</body> 
</html> 

Di atas adalah semua kandungan artikel ini, saya harap anda semua menyukainya.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn