>  기사  >  웹 프론트엔드  >  javascript_javascript 스킬로 문자열 가로채기 요약

javascript_javascript 스킬로 문자열 가로채기 요약

WBOY
WBOY원래의
2016-05-16 16:01:501582검색

이 글은 자바스크립트를 이용한 문자열 가로채기 방법 3가지를 요약해서 소개하고 있으며, 중국어 문자열 가로채기 방법 2가지도 요약해서 소개합니다.

1.하위 문자열 방법

정의 및 사용법
하위 문자열 방법은 문자열에서 지정된 두 첨자 사이의 문자를 추출하는 데 사용됩니다.

문법
stringObject.substring(시작, 중지)

매개변수 설명
시작이 필요합니다. 추출할 부분 문자열의 첫 번째 문자에 대한 stringObject의 위치를 ​​지정하는 음수가 아닌 정수입니다.
중지는 선택 사항입니다. 추출할 하위 문자열의 마지막 문자보다 하나 더 많은 stringObject의 한 위치에 해당하는 음이 아닌 정수입니다. 이 매개변수를 생략하면 반환된 하위 문자열이 문자열의 끝으로 이동합니다.

반환값
start부터 stop-1까지의 모든 문자를 포함하고 stop에서 start를 뺀 길이를 갖는 stringObject의 하위 문자열을 포함하는 새 문자열 값입니다.

설명
하위 문자열 메서드에서 반환된 하위 문자열에는 시작 부분의 문자가 포함되지만 끝 부분의 문자는 포함되지 않습니다.
start와 end가 같으면 이 메서드는 빈 문자열(즉, 길이가 0인 문자열)을 반환합니다.
start가 end보다 크면 메서드는 하위 문자열을 추출하기 전에 두 매개 변수를 바꿉니다.
start 또는 end가 음수이면 0으로 대체됩니다.
구체적인 사용 사례:

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

정의 및 사용법
substr 메소드는 지정된 위치에서 시작하여 지정된 길이의 하위 문자열을 반환하는 데 사용됩니다.

문법
stringObject.substr(시작 [, 길이 ])

매개변수 설명
시작이 필요합니다. 원하는 하위 문자열의 시작 위치입니다. 문자열의 첫 번째 문자의 인덱스는 0입니다.
길이는 선택사항입니다. 반환된 하위 문자열에 포함되어야 하는 문자 수입니다.

설명
길이가 0이거나 음수이면 빈 문자열이 반환됩니다.
이 매개변수를 지정하지 않으면 하위 문자열이 stringObject의 끝까지 계속됩니다.

특정 사용 사례:

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. 맞춤 방법

위의 두 가지 방법은 영어와 숫자만 가로챌 수 있습니다. 중국어를 접할 때 할 수 있는 일은 없습니다. 강제로 사용하면 글자가 깨질 수 있습니다. 제가 직접 인증하고 연구한 끝에 마침내 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 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; 
} 

Js를 사용하여 중국어 문자열을 가로채는 구체적인 사용 방법은 다음과 같습니다.

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

위 내용이 이 글의 전부입니다. 모두 마음에 드셨으면 좋겠습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.