javascript intercepts a string summary

  • 2020-06-03 05:47:04
  • OfStack

This article summarizes three methods of using Javascript to intercept strings and two methods of intercepting Chinese strings. Share 1.

1. substring method

Definition and usage
The substring method is used to extract the characters that string mediates between two specified subscripts.

grammar
stringObject.substring(start,stop)

Parameters to describe
start required. 1 non-negative integer specifying the position of the first character of the substring to be extracted in stringObject.
stop optional. 1 non-negative integer, 1 more than the last character of the substring to be extracted in stringObject. If the parameter is omitted, the substring returned is 1 up to the end of the string.

The return value
1 new string containing the 1 substring of stringObject, the content of which is all characters from start to ES30en-1, with the length of stop minus start.

instructions
The substring returned by the substring method includes characters at start but not end.
If start is equal to end, the method returns an empty string (that is, a string of length 0).
If start is larger than end, the method swaps the two parameters before extracting the substring.
If start or end is negative, it is replaced with 0.
Specific use cases:


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

2. substr method

Definition and usage
The substr method is used to return 1 substring of a specified length starting at a specified location.

grammar
stringObject.substr(start [, length ])

Parameters to describe
start required. The starting position of the desired substring. The first character in the string has an index of 0.
length optional. The number of characters that should be included in the returned substring.

instructions
If length is 0 or negative, an empty string is returned.
If this parameter is not specified, the substring continues to the end of stringObject.

Specific use cases:


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. Custom methods

The above two methods can only intercept English and Numbers, but when it comes to Chinese, there is no alternative. Forced use will lead to disorderly code. After my research, I finally concluded two methods that can use Javascript to intercept a string containing Chinese:

The first method:


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; 
} 

The second method:
// interception string contains Chinese processing, parameter meaning :(string, interception length, whether to increase...)


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; 
} 

The specific usage of Js to intercept Chinese characters is as follows:


<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Javascript Summary of string interception (Js Intercept Chinese string summary )</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=' I love www.ofstack.com'; 
alert(str.sub(10)); 
alert(subString(str,10,false)); 
</script> 
</body> 
</html> 

That's it for this article. I hope you enjoy it.


Related articles: