2009-07-20 4 views
0

HTML 마크 업에서 요소의 ID로 두 가지 유형의 문자열이 있습니다.오류가 발생하지 않고 토큰을 포함하지 않는 문자열에서 split (토큰)을 호출하는 방법은 무엇입니까?

날짜 :

"april-23" 
"march-20" 

"springtime" 
"winter" 

날짜에 달이 그 날.

계절은 다른 토큰이없는 한 단어입니다.

var time_of_year = $(this).attr("id").split('-')[0]; 

이 코드는 달에 작동하지만 달에 전화를 걸면 작동합니다. 토큰을 포함하지 않는 시즌 이름은 오류를 생성합니까?

이 작업을 수행하는 안전한 방법은 무엇입니까?

답변

4

오류를 반환하지는 않지만 길이가 1 인 배열을 반환합니다.

당신은 같은 것을 할 수 있습니다 : 여기

var splitty = $(this).attr('id').split('-'); 
if (splitty.length > 1) { 
    time_of_year = splitty[0]; 
} 
else { 
    // do something else magical here 
} 

split에 대한 문서입니다. 당신은 항상 첫 번째 값을 원하는 다른 사람 신경 쓰지 않은 경우

그러나, 당신은 단지/OA 기기 문제 승 원래의 코드를 사용할 수

var time_of_year = $(this).attr('id').split('-')[0] 
+0

길이 검사는 절대 필요하지 않습니다. $ (this) .attr ("id"). split ('-') [0] 단독으로도 안전합니다. –

+0

@Ates 나는 그것에 대해 생각했지만 분할 된 문자가 없으면 OP가 다른 것을하고 싶었던 것처럼 보였다. 이 피드백으로 답변을 업데이트하겠습니다. – seth

3

mystring.indexOf('-')을 사용하여 하이픈 문자가 있는지 확인할 수 있습니다 (존재하지 않는 경우 -1을 반환). 그러나 그 캐릭터를 포함하지 않는 캐릭터에 문자열을 분할하면 원래의 문자열을 반환한다는 것을 확신합니다.

0

왜 당신이 이전에 하이픈을 추가하지 마십시오 스플릿을 수행하는 것? 어쨌든 첫 번째 요소를 움켜 잡고 있습니다. 두 요소 중 첫 번째 요소이거나 세 요소 중 첫 요소 인 경우 차이점은 무엇입니까?

var time_of_year = $ ((this) .attr ("id") + '- x'). split ('-') [0];

그런 식으로 첫 번째 하이픈의 왼쪽에있는 항목을 잡아하고, 항상 첫 번째 하이픈이있을 것이다 :

"4 월 23 X" "봄-X"

(참고로, 나는 이것을 테스트하지 않았고 문법에 대한 나의 인생을 고집하지 않고있다. 그러나 아마도 그것은 당신을위한 신선한 아이디어 일 것이다.)

편집 : 그건 그렇고, 나는 원래 우편 어쨌든 작동합니다. Split은 길이가 1 인 목록을 반환해야하며 [0] '번째 요소를 가져 오는 중입니다. 이는 완벽합니다.

+0

그 일을 수행하는 뒤 엉덩이의 종류 : P – micmcg

+0

음, 분명히, "올바른"방법은 문서를 읽고 .split()이 어떻게 작동하는지 이해하는 것입니다. 그러나 때로는 시간이 있습니다. 따라서 오류에 대해 걱정할 경우 신속한 예방 조치를 취하고 앞으로 나아갈 수 있습니다. 인간의 노동 시간을 줄이는 것이 타당한 목표입니다. 섹시한 지식이없는 고등학생이 차 뒷자리에 매력이 있다고 가정 해보십시오. 그는 손가락으로 소녀를 임신 시킬지 모른다고 걱정했습니다. 그는 모든 것을 멈추고 섹스에 관한 문서를 읽나요? 나. 당신은 당신의 손가락에 콘돔을 넣고 계속 나아 간다. 또는 더 나은 아직, 당신은 "아, f - k 그것". :) –

관련 문제