2011-03-11 3 views
1

이 스크립트를 검사하여 정확한 문자열 "abc"가 포함되도록 확인하려면 어떻게해야합니까?Regex이 특정 문자열을 확인합니다

(/^[a].*/i.test(mystring)) 

대소 문자를 구별하지 않아야하며 대문자와 소문자를 사용해야합니다.

+1

이전 답변에서 말한 것처럼 http://regular-expressions.info/는 정규 표현식을 배우기에 좋은 자료입니다. 그걸 써! 질문 : 'mystring'**에 ** abc 또는 ** ** abc와 같은지 여부를 테스트 하시겠습니까? –

+0

@Felix, 질문에 * 정확한 문자열 * "abc"가 묻습니다. @ detonate, 왜 @ Brad 그의 대답에서 언급 한 단순한 텍스트 비교에 대한 정규 표현식의 오버 헤드와 복잡성을 원하십니까? –

+0

@Ken White :하지만 * 또한 * 포함되어 있습니다. OP 만이 질문에 대답 할 수 있습니다. –

답변

1

그냥 이렇게 :

/^abc$/i.test(mystring); 
+3

@detonate의 의미는 /abc/i.test(mystring)입니다. –

+0

@Alexey : 어쩌면 그는 "정확한 문자열"을 쓰고 있습니다 ... –

+2

'mystring.toLowerCase() ===로도 처리 할 수 ​​있습니다 'abc'. –

3

당신 can use regex하지만, 나는이 .toLowerCase & .indexOf에 더 적합하다고 생각 :

var hasABC = ("myabcstring".toLowerCase().indexOf("abc") !== -1); 

정규식 내게 잔인한 사람처럼 보인다. 코멘트에


답변 :

var mystring = "FoOaBcBaR"; 
function checkForABC(){ 
    if (mystring.toLowerCase().indexOf('abc') != -1) 
    alert('found ABC!'); 
    else 
    alert('Did NOT find ABC'); 
} 
checkForABC(); 

Demo

+0

브래드가 편집을 완료했습니다. 대문자와 소문자를 확인해야합니다. – detonate

+0

@detonate : 그렇기 때문에 원래 문자열을 소문자로 변환 한 다음 소문자 비교자를 테스트합니다. (오해가 아닌 한, 예제가 항상 좋은 경우) –

+0

조건을 사용하는 함수에 어떻게 포함시킬 수 있습니까? – detonate

1

과도한 정규식을 방지하기 위해

var exists = (mystring.toLowerCase().indexOf('abc') > -1); 

같은 것을 사용하여, 직선 문자열에 대한 간단한 검사의 경우 그들이 일반적으로 더 많은 reso 명령으로 사용 우스.

+1

편집했습니다. uppercaps와 lowercaps를 확인해야합니다. – detonate

0

찾고있는 정규식을 생각해보십시오.

^abc$ 

희망이 있습니다.

+0

Desi, 편집자를 작성했습니다. uppercaps와 lowercaps를 확인해야합니다. – detonate

+0

좋아요. 다행 이군. – Desi

관련 문제