2013-12-17 2 views

답변

4

당신은 정규식을 사용할 수 있습니다 :

var matches = /Price:(.*?) /g.exec("Price:$20 is very cheap"); 
if(matches.length > 1) { 
    var price = matches[1]; 
} 
else { 
    // Not found 
} 

참고이 단어 가격 후 문자의 순서와 일치합니다. 단어 가격 뒤에 공백이 있으면 끊어집니다. $ 20 이후에 공간이 없으면 끊어집니다. 입력 소스에 따라 규칙을 좀 더 복잡하게 만들어야합니다. 정규 표현식없이

+0

죄송합니다. 문자열이 HTML 인 경우이 작업을 수행하는 방법은 무엇입니까? –

+0

나를 확인할 수 있습니까? 문자열에 단어가없는 경우 "가격"입니까? http://jsfiddle.net/7fCfa/ –

+0

@happi'if (matches && matches.length> 1)'. – leaf

2

문자열을 다음과 같이 나눕니다.

string.split(":")[1].split(" ")[0] 
1
var str = 'Price:$20 is very cheap'; 
var price = str.split(' ')[0].split(':')[1]; // $20 
1
var matches = /Price:(\$\d+)/.exec(string) 
matches[1];//"$20" 
3

다양한 솔루션 :

var s = 'Price:$20 is very cheap'; 
var s1 = s.slice(6, s.indexOf(' ')); 
var s2 = s.slice(s.indexOf(':') + 1, s.indexOf(' ')); 
var s3 = s.slice(s.indexOf('$'), s.indexOf(' ')); 
// s1 === s2 === s3 === "$20" 
1

당신은 string.split(":")[1].split(" ")[0]

를 사용하거나 다른 사람이 str.substring(); & str.indexOf(); .Fiddle 예를의 조합을 사용할 수 있습니다 :

http://jsfiddle.net/PmcL3/

1

문자열 메서드가 모든 경우에 대해 올바른 대답을 반환 할 수 없으므로 정규 표현식을 사용하는 것이 더 좋습니다.

관련 문제