문자열의 마지막 두 문자를 선택하는 방법


194

변수에서 마지막 두 문자를 숫자 또는 문자로 선택해야합니다.

예를 들면 다음과 같습니다.

var member = "my name is Mate";

member변수 의 문자열에서 마지막 두 글자를 표시하고 싶습니다 .

답변:



23

에 종료 색인을 지정할 필요가 없습니다 substring.

var characters = member.substr(member.length -2);

원래의 대답이 더 적절했을 것입니다. 에 따르면 MDN의 substr문서 , "마이크로 소프트의 JScript에서는 개시 인덱스에 대한 음수 값을 지원하지 않습니다."

23

편집 : 2020 : string.slice(-2)다른 사람들의 말처럼 사용 하십시오-아래를 참조하십시오.

이제 2016 string.substr(-2)은 트릭을 수행해야합니다 ( 하위 문자열 (!) 아님)

MDN에서 가져온

통사론

str.substr(start[, length])

매개 변수

스타트

문자 추출을 시작할 위치입니다. 음수를 지정하면 strLength + start처리됩니다. 여기서 strLength는 문자열의 길이입니다 (예 : start가 -3이면 strLength-3으로 처리됨) length 선택 사항. 추출 할 문자 수입니다.

2020 년 편집

MDN은 말합니다

경고 : String.prototype.substr (…)은 엄격하게 사용되지 않지만 ( "웹 표준에서 제거"와 같이) 레거시 함수로 간주되며 가능하면 피해야합니다. 핵심 JavaScript 언어의 일부가 아니며 나중에 제거 될 수 있습니다.


1
"Microsoft의 JScript는 시작 색인에 음수 값을 지원하지 않습니다. JScript에서이 기능을 사용하려면 다음 코드를 사용할 수 있습니다 ..."- developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… (슬라이스에 대해서는 polyfill이 없습니다 : developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… )
George Birbilis 2016

JScript는 브라우저 내부에 없으며 주로 VBScript와 유사한 Windows 스크립트 호스트 자동화 작업을위한 스크립팅 언어이므로 당시에는 이러한 방법이 포함되지 않은 것이 논리적입니다. 암호 구문. 어쨌든 주석은 음의 인덱스를 지원하기 때문에 JScript의 경우 substr보다 슬라이스가 더 나은 후보에 대한 의견이었습니다. docs.microsoft.com/en-us/previous-versions/windows/…
George Birbilis

9

다음 예제는 slice()음수 인덱스와 함께 사용 합니다.

var str = 'my name is maanu.';
console.log(str.slice(-3));     // returns 'nu.' last two
console.log(str.slice(3, -7)); // returns 'name is'
console.log(str.slice(0, -1));  // returns 'my name is maanu'


5

당신은 시도 할 수 있습니다

member.substr(member.length-2);

당신은 시작 색인에서 member.length를 놓쳤다 :)
mattytommo

멋진 아, 나는 :) 반영하기 위해 감사 TJ와 이부을 내 대답을 업데이 트했습니다
mattytommo

1
@ TJCrowder : 시작 위치로 음수 인덱스가 IE8 이하에서는 작동하지 않습니다.

1
@amnotiam : 고맙습니다. 아주 잘 알고 있습니다! 난 그냥 테스트 , 과연은 하지 않았다 IE7이나 IE8 작업 (그래서 아마도 IE6에서 작동하지 않을 것입니다). 표준 모드의 IE9는 훌륭했지만 호환성은 아닙니다. 나는 결코 사용하지 않으며 substr, 이제는 잘난 척하는 자식이 저에게 힘든 시간을 준 스레드를 찾을 수 있기를 바랍니다 (특히 음수 색인을 사용하지 않음)-이제 그것을 정당화 할 수 있습니다! :-)
TJ Crowder


2

이렇게하려면 jQuery가 아닌 하위 문자열을 사용해야합니다.

다음과 같이 해보십시오 :

member.substring(member.length - 2, member.length)

W3Schools (공식은 아니지만 가끔 도움이 됨) : http://www.w3schools.com/jsref/jsref_substring.asp

주석자가 요청한대로 MDN 링크 추가 : https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring


3
w3fools가 아닌 MSDN 또는 MDN과 같은 공식 문서에 대한 링크를 제공하십시오. :)
jbabey

w3schools는 "공식적인"것이 아니라 일반적으로 신뢰할만한 정보를 가지고 있습니다. MSDN은 공식적이지만 IE에만 ​​해당되며 Firefox, Safari 등과는 아무런 관련이 없습니다.
Matt

이 글을 올릴 때 댓글에 대한 링크를 추가했습니다
Matt

1
var member = "my name is maanu";

var answer=member.substring(0,member.length - 2);

alert(answer);

1
코드는 무엇을합니까? 이것이 달성하는 것에 대한 설명을 작성하십시오.
DNKROZ

3
공평하게 말하면, 질문은 코드가 무엇을해야하는지에 대해 매우 구체적이므로 한 줄의 코드로 구성된 대답은 매우 자명합니다.
anaximander 2018 년

1
코드 출력은 'nu'입니다. 단어에서 마지막 2 문자를 가져옵니다.
Biju s

7
코드 출력이 "내 이름은 maa"(마지막 두 글자 제외 ~ ~ 두 글자 제외)가 될 것 같습니다. 올바르게 이해하면 질문이 요구 한 것이 아닙니다.
ewino
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.