이 글은 자바스크립트를 이용한 문자열 가로채기 방법 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>
위 내용이 이 글의 전부입니다. 모두 마음에 드셨으면 좋겠습니다.