Apa persamaan reguler (dalam JavaScript jika itu penting) yang hanya cocok jika teksnya benar-benar cocok? Artinya, seharusnya tidak ada karakter tambahan di ujung string.
Sebagai contoh, jika saya mencoba untuk mencocokkan untuk abc
, kemudian 1abc1
, 1abc
dan abc1
akan tidak cocok.
\babc\b
, yang akan memungkinkan misalnya123 abc 123
untuk mencocokkanabc
(tetapi bukan contoh negatif seperti dalam pertanyaan); Namun,^abc$
akan memastikan bahwaa
itu di awal string danc
pada akhirnya - jika tidak maka tidak akan cocok.Jawaban:
Gunakan pembatas awal dan akhir:
^abc$
sumber
^abc def ghi$
/^(?:abc|def)$/
atau/^(abc|def)$/
. Jika tidak, jika grup tidak digunakan,/^abc|def$/
akan cocokabc
pada awal string ATAUdef
pada akhir string.Tergantung. Anda bisa
Tapi itu tidak cocok dengan string berikut: '3 huruf pertama dari alfabet adalah abc. tidak abc123 '
Saya pikir Anda ingin menggunakan
\b
(batas kata):Contoh langsung: http://jsfiddle.net/uu5VJ/
Jika solusi sebelumnya bekerja untuk Anda, saya akan menyarankan untuk tidak menggunakannya.
Itu berarti Anda mungkin memiliki sesuatu seperti berikut:
Sementara Anda bisa menggunakannya
Ini akan menjadi jauh lebih intensif sumber daya. Bagi saya, aturan umum adalah untuk perbandingan string sederhana menggunakan ekspresi kondisional, untuk pola yang lebih dinamis gunakan ekspresi reguler.
Lebih lanjut tentang regex JavaScript: https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions
sumber
"^" Untuk awal baris "$" untuk akhir itu. Misalnya.:
Akan cocok dengan "abc" tetapi tidak "1abc" atau "abc1". Anda dapat mempelajari lebih lanjut di https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
sumber