[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 에서 확인할 수 있습니다.