Wyrażenia regularne będą bardziej optymalne dla wielu osób ze względu na granice słów \blub podobne urządzenia. Granice słów wystąpić, gdy którykolwiek z 0-9, a-z, A-Z, _są na tej stronie następnego meczu, lub gdy alfanumerycznym łączy postać do linii lub na końcu lub na początku łańcucha.
if (location.href.match(/(?:\b|_)franky(?:\b|_)))
Jeśli używasz if(window.location.href.indexOf("sam"), dostaniesz wyniki dla flotsami same, między innymi słowami. tompasuje do pomidorów i jutra, bez wyrażenia regularnego.
Rozróżnianie wielkości liter jest tak proste, jak usunięcie i.
Ponadto dodawanie innych filtrów jest tak proste, jak
if (location.href.match(/(?:\b|_)(?:franky|bob|billy|john|steve)(?:\b|_)/i))
Porozmawiajmy o tym (?:\b|_). RegEx zazwyczaj definiuje _jako word charactertak, że nie powoduje granicy słowa. Używamy tego, (?:\b|_)aby sobie z tym poradzić. Aby sprawdzić, czy znajdzie \balbo _po dowolnej stronie ciągu.
Inne języki mogą wymagać użycia czegoś takiego
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.
Wszystko to jest łatwiejsze niż mówienie
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
Smaki innych wyrażeń w innych językach obsługują, \p{L}ale javascript nie obsługuje, co znacznie ułatwi wykrywanie obcych znaków. Coś jak[^\p{L}](filters|in|any|alphabet)[^\p{L}]
"window.location.contains is not a function"