回答:
開始と終了の区切り文字を使用します。 ^abc$
^abc def ghi$
/^(?:abc|def)$/
または/^(abc|def)$/
。それ以外の場合、グループが使用されていなければ、文字列の最初または最後で/^abc|def$/
一致abc
しdef
ます。
場合によります。あなたは出来る
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をご覧ください。
\babc\b
は本当にを望んでいます。これにより、たとえば123 abc 123
、一致することができますabc
(ただし、質問のような否定的な例は許可されません)。ただし、^abc$
それa
が文字列の先頭とc
末尾にあることを確認します。それ以外の場合は一致しません。