답변:
var str = "hello,how,are,you,today?";
var pieces = str.split(/[\s,]+/);
이 시점에서 pieces
배열은 배열이며 pieces.length
배열의 마지막 요소를 얻기 위해 배열의 크기를 포함합니다 pieces[pieces.length-1]
. 쉼표 나 공백이 없으면 주어진 문자열을 단순히 출력합니다.
alert(pieces[pieces.length-1]); // alerts "today?"
var last = str.split(/[\s,]+/).pop()
모든 것을위한 하나의 라이너가 있습니다. :)
var output = input.split(/[, ]+/).pop();
split
호출에 의해 만들어 지므로 문제가되지 않습니다. 원래 문자열은 배열에서 항목을 팝업으로 변경하지 않습니다.
{1,}
, 즉 [, ]+
세트 (콤마와 스페이스)에서 더 많은 캐릭터 중 하나와 일치하거나. 문자열에서 모든 단어를 원할 때 유용하지만 마지막 단어 만 원할 때 기능상의 차이는 없지만 배열에 문자열이 적기 때문에 오버 헤드 만 줄입니다.
var item = "one,two,three";
var lastItem = item.split(",").pop();
console.log(lastItem); // three
.split(',').pop()
쉼표로 구분 된 문자열의 마지막 요소에서 작동합니다. 그냥 Guffa의 멋진 답변으로 오해 된 cuz를 말하면, 정규 표현식이 필요없고 트릭이 있다고 생각했기 때문에 무시했습니다! : P
배열을 뒤집고 첫 번째 요소를 취하는 것도 고려할 수 있습니다. 이렇게하면 길이를 알 필요는 없지만 큰 배열에서 리버스 작업이 오래 걸릴 수 있다는 실제 이점과 단점은 없습니다.
array1.split(",").reverse()[0]
쉽지만 문제의 원래 배열을 수정합니다. 문제가 될 수도 있고 아닐 수도 있습니다.
참조 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse
아마 당신은 이것을 사용하고 싶을 것입니다 :
array1.split(",").pop()
.pop()
방법은 내가 지금까지 본 최고의 답변입니다. 그것이 그것이 만들어진 이유입니다!
그리고 배열을 구성하지 않으려면 ...
var str = "how,are you doing, today?";
var res = str.replace(/(.*)([, ])([^, ]*$)/,"$3");
영어로 된 분류는 다음과 같습니다.
/(anything)(any separator once)(anything that isn't a separator 0 or more times)/
바꾸기는 전체 문자열을 마지막 구분 기호 뒤에있는 항목으로 바꿉니다.
이것이 일반적으로 어떻게 적용되는지 볼 수 있습니다. 원래 문자열은 수정되지 않습니다.
var title = 'fdfdsg dsgdfh dgdh dsgdh tyu hjuk yjuk uyk hjg fhjg hjj tytutdfsf sdgsdg dsfsdgvf dfgfdhdn dfgilkj,n, jhk jsu wheiu sjldsf dfdsf hfdkdjf dfhdfkd hsfd ,dsfk dfjdf ,yier djsgyi kds';
var shortText = $.trim(title).substring(1000, 150).split(" ").slice(0, -1).join(" ") + "...More >>";
배열 인덱스에 직접 액세스 할 수 있습니다.
var csv = 'zero,one,two,three';
csv.split(',')[0]; //result: zero
csv.split(',')[3]; //result: three
pieces.pop()
배열의 마지막 항목을 얻는 데 사용할 수도 있습니다 .