programing

문자열의 마지막 문자를 가져오려면 어떻게 해야 합니까?

procenter 2022. 12. 29. 21:48
반응형

문자열의 마지막 문자를 가져오려면 어떻게 해야 합니까?

있습니다

var id="ctl03_Tabs1";

JavaScript를 사용하면 마지막 5자 또는 마지막 문자를 어떻게 얻을 수 있습니까?

편집: 다른 사용자가 지적한 바와 같이 대신 사용합니다.단,.split().pop()다른 접근법에 대해서는 이 답변 하단에 있는 솔루션을 제시합니다.

원답:

메서드 Javascript를 .substr() combined 와 .length★★★★★★★★★★★★★★★★★★.

var id = "ctl03_Tabs1";
var lastFive = id.substr(id.length - 5); // => "Tabs1"
var lastChar = id.substr(id.length - 1); // => "1"

그러면 id.length - 5로 시작하는 문자가 취득되고 .substr()의 두 번째 인수가 생략되었기 때문에 문자열의 마지막까지 계속됩니다.

이 경우에도 하실 수 있습니다..slice()다른 사람들이 아래에 지적한 바와 같이 방법.

단순히 밑줄 뒤의 문자를 찾으려면 다음을 사용할 수 있습니다.

var tabId = id.split("_").pop(); // => "Tabs1"

그러면 문자열이 언더스코어 배열로 분할되고 배열에서 마지막 요소(필요한 문자열)가 "팝"됩니다.

되지 않는 사용 안.substr()!

하다, 쓰다, 쓰다, 쓰다, 쓰다, 쓰다, 쓰다, 쓰다, 쓰다, 쓰다, 쓰다, 쓰다, 쓰다, 쓰다, 쓰다, 쓰다, 쓰다, 쓰다, 쓰다..slice()브라우저 간 호환성이 있기 때문에 메서드를 사용합니다(IE 관련 문제 참조).또는 를 사용합니다..substring()★★★★★★ 。

다음은 String.protype에 기재되어 있는 요건의 약간의 차이입니다.서브스트링()

const id = "ctl03_Tabs1";

console.log(id.slice(-5)); //Outputs: Tabs1
console.log(id.slice(-1)); //Outputs: 1

// below is slower
console.log(id.substring(id.length - 5)); //Outputs: Tabs1
console.log(id.substring(id.length - 1)); //Outputs: 1

시작 위치가 음수인 subst() 메서드를 사용하여 마지막 n개의 문자를 가져올 수 있습니다.예를 들어 마지막 5가 표시됩니다.

var lastFiveChars = id.substr(-5);

문자열을 배열로 취급할 수 있기 때문에 마지막 문자를 쉽게 얻을 수 있습니다.

var lastChar = id[id.length - 1];

문자열의 섹션을 가져오려면 기판 함수 또는 하위 문자열 함수를 사용할 수 있습니다.

id.substr(id.length - 1); //get the last character
id.substr(2);             //get the characters from the 3rd character on
id.substr(2, 1);          //get the 3rd character
id.substr(2, 2);          //get the 3rd and 4th characters

「 」의 substr ★★★★★★★★★★★★★★★★★」substring두 번째(옵션) 파라미터의 처리방법입니다. »substr인덱스의 문자 수(첫 번째 매개 변수)입니다. »substring캐릭터 슬라이싱이 어디에서 끝나야 하는지를 나타내는 지표입니다.

다음 스크립트는 JavaScript를 사용하여 문자열 내의 마지막 5자 및 마지막 1자의 결과를 보여 줍니다.

var testword='ctl03_Tabs1';
var last5=testword.substr(-5); //Get 5 characters
var last1=testword.substr(-1); //Get 1 character

출력:

Tabs1 // 5글자 취득

1 // 1 문자 획득

const r = '6176958e92d42422203a3c58'; 
r.slice(-4)

결과 '3c58'

r.slice(-1)

결과 '8'

가지 으로는 한한 one one one를 사용하는 이 있습니다.slice음음음같 뭇매하다

var id="ctl03_Tabs1";
var temp=id.slice(-5);

그 가치는temp"Tabs1".

서브스트링 기능을 확인합니다.

마지막 문자를 가져오려면:

id.substring(id.length - 1, id.length);

기판 함수를 사용하면 -를 사용하여 마지막 문자를 얻을 수 있습니다.

var string = "hello";
var last = string.substr(-1);

굉장히 유연해요.예를 들어 다음과 같습니다.

// Get 2 characters, 1 character from end
// The first part says how many characters
// to go back and the second says how many
// to go forward. If you don't say how many
// to go forward it will include everything
var string = "hello!";
var lasttwo = string.substr(-3,2);
// = "lo"

.substr자열의단단단자자방방!!!!!!!!

Jamon Holmgren의 예를 들어 기판 방법을 변경하고 배열 위치를 지정할 수 있습니다.

var id = "ctl03_Tabs1";
var lastChar = id[id.length - 1]; // => "1"

성능

오늘 2020.12.31 Chrome v87, Safari v13.1.2 및 Firefox v84에서 MacOs HighSierra 10.13.6에서 마지막 N자 케이스를 얻기 위한 선택된 솔루션을 테스트했습니다(마지막 문자 케이스는 별도의 답변으로 제시합니다).

결과.

모든 브라우저용

  • 솔루션 D의 베이스slice고속 또는 고속
  • 솔루션 G가 가장 느리다

여기에 이미지 설명 입력

세부 사항

2가지 테스트 케이스를 수행합니다.

  • 문자열에 10자가 있는 경우 - 여기서 실행할 수 있습니다.
  • 문자열에 100만 문자가 있는 경우 - 여기서 실행할 수 있습니다.

이하의 스니펫은, 솔루션 AB C D E F G(my)를 나타내고 있습니다.

//https://stackoverflow.com/questions/5873810/how-can-i-get-last-characters-of-a-string

// https://stackoverflow.com/a/30916653/860099
function A(s,n) {
  return s.substr(-n)
}

// https://stackoverflow.com/a/5873890/860099
function B(s,n) {
  return s.substr(s.length - n)
}

// https://stackoverflow.com/a/17489443/860099
function C(s,n) {
  return s.substring(s.length - n, s.length);
}

// https://stackoverflow.com/a/50395190/860099
function D(s,n) {
  return s.slice(-n);
}

// https://stackoverflow.com/a/50374396/860099
function E(s,n) {
  let i = s.length-n;
  let r = '';
  while(i<s.length) r += s.charAt(i++);
  return r
}

// https://stackoverflow.com/a/17489443/860099
function F(s,n) {
  let i = s.length-n;
  let r = '';
  while(i<s.length) r += s[i++];
  return r
}

// my
function G(s,n) {
  return s.match(new RegExp(".{"+n+"}$"));
}

// --------------------
// TEST
// --------------------

[A,B,C,D,E,F,G].map(f=> {  
  console.log(
    f.name + ' ' + f('ctl03_Tabs1',5)
  )})
This shippet only presents functions used in performance tests - it not perform tests itself!

다음은 Chrome의 예시 결과입니다.

여기에 이미지 설명 입력

마지막 문자 또는 know 위치에 있는 문자만 원하는 경우 문자열을 배열로 추적할 수 있습니다. - 문자열은 javascript에서 반복 가능합니다.

Var x = "hello_world";
 x[0];                    //h
 x[x.length-1];   //d

그러나 두 개 이상의 문자가 필요한 경우 스플라이스를 사용하는 것이 효과적입니다.

x.slice(-5);      //world

당신의 예에 대해서

"rating_element-<?php echo $id?>"

ID를 추출하려면 분할 + 팝을 쉽게 사용할 수 있습니다.

Id= inputId.split('rating_element-')[1];

그러면 ID가 반환됩니다.또는 'rating_element' 뒤에 ID가 없는 경우 정의되지 않습니다. : )

성능

현재 2020.12.31 Chrome v87, Safari v13.1.2 및 Firefox v84에서 MacOs HighSierra 10.13.6에서 마지막 문자 케이스를 얻기 위한 선택된 솔루션(마지막 N자 케이스 결과, 다른 답변으로 제시)을 테스트합니다.

결과.

모든 브라우저용

  • 솔루션 D, E, F는 매우 빠르거나 빠릅니다.
  • 솔루션 G, H가 가장 느리다

여기에 이미지 설명 입력

세부 사항

2가지 테스트 케이스를 수행합니다.

  • 문자열에 10자가 있는 경우 - 여기서 실행할 수 있습니다.
  • 문자열에 100만 문자가 있는 경우 - 여기서 실행할 수 있습니다.

아래 스니펫은 솔루션 A B C D E F G(my), H(my)를 나타냅니다.

//https://stackoverflow.com/questions/5873810/how-can-i-get-last-characters-of-a-string

// https://stackoverflow.com/a/30916653/860099
function A(s) {
  return s.substr(-1)
}

// https://stackoverflow.com/a/5873890/860099
function B(s) {
  return s.substr(s.length - 1)
}

// https://stackoverflow.com/a/17489443/860099
function C(s) {
  return s.substring(s.length - 1, s.length);
}

// https://stackoverflow.com/a/50395190/860099
function D(s) {
  return s.slice(-1);
}

// https://stackoverflow.com/a/50374396/860099
function E(s) {  
  return s.charAt(s.length-1);
}

// https://stackoverflow.com/a/17489443/860099
function F(s) {  
  return s[s.length-1];
}

// my
function G(s) {
  return s.match(/.$/);
}

// my
function H(s) {
  return [...s].pop();
}

// --------------------
// TEST
// --------------------

[A,B,C,D,E,F,G,H].map(f=> {  
  console.log(
    f.name + ' ' + f('ctl03_Tabs1')
  )})
This shippet only presents functions used in performance tests - it not perform tests itself!

다음은 Chrome의 예시 결과입니다.

여기에 이미지 설명 입력

const id = 'ctl03_Tabs1';
id.at(-1); // Returns '1'

at는 마지막 문자열 문자부터 카운트백하기 위해 음의 정수를 지원합니다.


문서: String/at

var id="ctl03_Tabs1";
var res = id.charAt(id.length-1);

나는 이 질문을 발견했고 몇 가지 조사를 통해 이것이 마지막 캐릭터를 얻는 가장 쉬운 방법이라는 것을 발견했다.

마지막 5개를 얻기 위해 완성도를 높이기 위해 다른 사용자가 언급하고 추가했듯이:

var last5 = id.substr(-5);

이용하실 수 있습니다.string.length기능을 사용하여 마지막 문자를 가져옵니다.다음의 예를 참조해 주세요.

let str = "hello";
console.log(str[str.length-1]);
// Output : 'o' i.e. Last character.

마찬가지로, 다음을 사용할 수 있습니다.for위의 코드를 사용하여 문자열을 반전시킵니다.

서브스트링을 다른 문자열의 끝과 비교하여 결과를 부울로 사용하는 경우 String 클래스를 확장하여 이를 수행할 수 있습니다.

String.prototype.endsWith = function (substring) {
  if(substring.length > this.length) return false;
  return this.substr(this.length - substring.length) === substring;
};

다음을 수행할 수 있습니다.

var aSentenceToPonder = "This sentence ends with toad"; 
var frogString = "frog";
var toadString = "toad";
aSentenceToPonder.endsWith(frogString) // false
aSentenceToPonder.endsWith(toadString) // true

, 「」를 합니다.split('').pop()★★★★★★ 。

const myText = "The last character is J";
const lastCharater = myText.split('').pop();
console.log(lastCharater); // J

'이렇게 하다'가 때 효과가 있어요 왜냐하면split('')함수에는 파라미터로 공백("")이 있으며 문자열의 각 문자가 배열 요소로 변경됩니다. ''를 할 수 요.pop()해당 배열의 마지막 요소인 'J' 문자를 반환하는 함수입니다.

저는 실제로 다음과 같은 문제를 가지고 있으며, 위의 답변으로 해결했지만 입력 요소에서 id를 추출하는 방법이 다릅니다.

다음 주소로 입력 파일을 첨부했습니다.

id="rating_element-<?php echo $id?>"

그리고 이 버튼을 클릭했을 때 id(숫자) 또는 php ID($id)만 추출하고 싶습니다.

그래서 내가 뭘 하는지.

 $('.rating').on('rating.change', function() {
            alert($(this).val());
           // console.log(this.id);
           var static_id_text=("rating_element-").length;       
           var product_id =  this.id.slice(static_id_text);       //get the length in order to deduct from the whole string    
          console.log(product_id );//outputs the last id appended
        });

문자열의 마지막 문자일 경우 쉼표가 제거됩니다.

var str = $("#ControlId").val();

if(str.substring(str.length-1)==',') {

  var stringWithoutLastComma = str.substring(0,str.length-1);    

}

라스트 5

var id="ctl03_Tabs1";
var res = id.charAt(id.length-5)
alert(res);

지난

   
 var id="ctl03_Tabs1";
 var res = id.charAt(id.length-1)
alert(res);

슬라이스를 사용할 수 있습니다.

id.gl5),

이게 잘 될 거라고 확신해요.

var string1="myfile.pdf"
var esxtenion=string1.substr(string1.length-4)

「」의 값extension 되다".pdf"

여기에서는 항상 마지막 문자를 보여주는 두 가지 예를 보여 줍니다.

var id="ctl03_Tabs1";

console.log(id.charAt(id.length - 1)); 

console.log(id[id.length - 1]); 

언급URL : https://stackoverflow.com/questions/5873810/how-can-i-get-last-characters-of-a-string

반응형