Düzenli İfadeler, kelime sınırları \bveya 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"), flotsamve samediğerlerinin yanında ve için eşleşme elde edersiniz . tomregex 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 \bya _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"