Düzenli İfadeler, kelime sınırları \b
veya benzer cihazlar nedeniyle birçok insan için daha uygun olacaktır . Sözcük sınırları herhangi ortaya 0-9
, a-z
, A-Z
, _
üzerinde o tarafa gelecek maçın veya zaman çizgisi veya dize sonu veya başlayan bir alfanümerik karakter bağlandığı.
if (location.href.match(/(?:\b|_)franky(?:\b|_)))
Eğer kullanırsanız if(window.location.href.indexOf("sam")
, flotsam
ve same
diğerlerinin yanında ve için eşleşme elde edersiniz . tom
regex olmadan domates ve yarın maç.
Büyük / küçük harfe duyarlı hale getirmek, çıkarmak kadar basittir i
.
Ayrıca, diğer filtreleri eklemek kadar kolay
if (location.href.match(/(?:\b|_)(?:franky|bob|billy|john|steve)(?:\b|_)/i))
Hadi konuşalım (?:\b|_)
. RegEx genellikle bir sözcük sınırına neden olmaması için _
bir tanım olarak tanımlar word character
. Bununla (?:\b|_)
başa çıkmak için bunu kullanıyoruz. Eğer o ya buluntular görmek için \b
ya _
dize her iki tarafında.
Diğer diller gibi bir şey kullanmaları gerekebilir
if (location.href.match(/([^\wxxx]|^)(?:franky|bob|billy|john|steve)([^\wxxx]|$)/i))
//where xxx is a character representation (range or literal) of your language's alphanumeric characters.
Bütün bunlar söylemekten daha kolay
var x = location.href // just used to shorten the code
x.indexOf("-sam-") || x.indexOf("-sam.") || x.indexOf(" sam,") || x.indexOf("/sam")...
// and other comparisons to see if the url ends with it
// more for other filters like frank and billy
Diğer dillerin Düzenli İfadeler lezzetleri desteklenir, \p{L}
ancak javascript desteklemez , bu da yabancı karakterleri algılama görevini daha kolay hale getirir. Gibi bir şey[^\p{L}](filters|in|any|alphabet)[^\p{L}]
"window.location.contains is not a function"