[regex] 전체 문자열과 일치

텍스트가 정확히 일치하는 경우에만 일치하는 정규식은 (중요한 경우 JavaScript) 무엇입니까? 즉, 문자열의 다른 끝에 추가 문자가 없어야합니다.

I가 일치하기 위해 노력하고있어 예를 들어, abc다음, 1abc1, 1abc,과 abc1일치하지 않습니다.



답변

시작 및 끝 구분 기호를 사용하십시오. ^abc$


답변

때에 따라 다르지. 넌 할 수있어

string.match(/^abc$/)

그러나 그것은 다음 문자열과 일치하지 않습니다. ‘알파벳의 첫 3 글자는 abc입니다. 아닙니다 abc123 ‘

나는 당신이 \b(단어 경계) 를 사용하고 싶다고 생각합니다 .

var str = 'the first 3 letters of the alphabet are abc. not abc123';
var pat = /\b(abc)\b/g;
console.log(str.match(pat));

라이브 예 : http://jsfiddle.net/uu5VJ/

이전 솔루션이 효과가 있다면 사용하지 않는 것이 좋습니다.

즉, 다음과 같은 것을 가질 수 있습니다.

var strs = ['abc', 'abc1', 'abc2']
for (var i = 0; i < strs.length; i++) {
    if (strs[i] == 'abc') {
        //do something 
    }
    else {
        //do something else
    }
}

사용할 수있는 동안

if (str[i].match(/^abc$/g)) {
    //do something 
}

훨씬 더 많은 자원이 필요합니다. 나를 위해 일반적인 경험 법칙은 간단한 문자열 비교에 조건식을 사용하고보다 역동적 인 패턴에 대해서는 정규식을 사용하는 것입니다.

JavaScript 정규 표현식에 대한 추가 정보 : https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions


답변

“^”줄 끝의 “$”를 시작합니다. 예 :

var re = /^abc$/;

“abc”와 일치하지만 “1abc”또는 “abc1″과는 일치하지 않습니다. 자세한 내용은 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions 에서 확인할 수 있습니다.


답변