Home  >  Article  >  Web Front-end  >  Summary of intercepting strings with javascript_javascript skills

Summary of intercepting strings with javascript_javascript skills

WBOY
WBOYOriginal
2016-05-16 16:01:501582browse

This article summarizes and introduces three methods of intercepting strings using Javascript. It also summarizes two methods of intercepting Chinese strings. Please share them.

1.substring method

Definition and usage
The substring method is used to extract characters between two specified subscripts in a string.

Grammar
stringObject.substring(start,stop)

Parameter Description
start is required. A nonnegative integer that specifies the position in stringObject of the first character of the substring to be extracted.
stop is optional. A nonnegative integer that is one position in the stringObject that is one more than the last character of the substring to be extracted. If this parameter is omitted, the returned substring will go to the end of the string.

Return value
A new string value containing a substring of stringObject containing all the characters from start to stop-1 and having a length of stop minus start.

Description
The substring returned by the substring method includes the characters at start but not the characters at end.
If start and end are equal, then this method returns an empty string (that is, a string of length 0).
If start is greater than end, the method swaps the two parameters before extracting the substring.
If start or end is negative, it is replaced by 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 a substring of a specified length starting at a specified position.

Grammar
stringObject.substr(start [, length ])

Parameter Description
start is required. The starting position of the desired substring. The first character in the string has index 0.
length is optional. The number of characters that should be included in the returned substring.

Description
If length is 0 or negative, an empty string is returned.
If this parameter is not specified, the substring will be continued 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 method

The above two methods can only intercept English and numbers. There is nothing you can do when encountering Chinese. Forced use will lead to garbled characters. After my own certification and research, I finally summarized two methods that can use Javascript to intercept strings containing Chinese method:

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

Second method:
//Intercept string, including 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 method of using Js to intercept Chinese strings is as follows:

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

The above is all the content of this article, I hope you all like it.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn