2015-01-26 4 views
1

끝에 숫자가있는 문자열 "slot1"이 있는데 그 번호를 얻고 싶습니다.문자열에서 숫자 얻기

currentSlot.name = "slot1"; 
slotNumber = currentSlot.name - "slot"; // I want it to be 1 

답변

1

number을 원하기 때문에 변환해야 할 수도 있습니다.

숫자를 얻으려면 substr()이 필요하고 숫자로 변환하려면 Number()이 필요합니다.

당신은 Number()

currentSlot.name = "slot1"; 
slotNumber = Number(currentSlot.name.substr(4)); 

Number() 생성자가 숫자를 예상하여 실제 번호 데이터로 숫자 문자로 구성되어 있습니다 문자열을 변환 할 수 있습니다, 그래서 유사했다

+1

OP, 그렇지 않으면 그가 분석하는 시도하려는 경우, 길이,'currentSlot.name.substr (4)'를 기반으로 문자열을 생산하는 것이 더있을거야 문자열의 정적 첫 번째 부분을 가지고 있음을 감안할 때' slot12' 코드는'12' 대신'2' 만 리턴합니다. – Vesper

+0

나는 내 대답을 업데이트했다. 나는 그것을 알아 채지 못했다. 감사합니다. @vesper –

1

내부에 계산을 넣지 마십시오 이전 프로젝트에서 필요하고 RegExp를 사용하기로 결정 했으므로 문자열 형식에 상관없이 항상 (가능한 경우) 숫자를 추출합니다.

var n:Number = getNumbersFromString("slot1"); // can be 1slot, s1lot, etc) always will return 1 

trace(n, n is Number); 

function getNumbersFromString(source:String):Number 
{ 
    var pattern:RegExp = /[^0-9]/g; 
    return Number(source.replace(pattern, '')); 
} 
+0

'slot1part2'. 정규 표현식은 좋지만, 핵탄두로 참새를 죽일 수도 있습니다. – Vesper

+0

@Vesper, 전적으로 동의합니다. 문자열의 형식이 패턴을 따르기 때문에이 경우 필요하지 않을 수도 있습니다. 그러나 일부 일반적인 변형도 표시하는 것이 좋습니다. – gabriel