शब्द सीमाओं \bया समान उपकरणों के कारण बहुत सारे लोगों के लिए नियमित अभिव्यक्तियाँ अधिक अनुकूल होंगी । शब्द सीमाओं होते हैं, जब से किसी 0-9, a-z, A-Z, _पर हैं उस तरफ अगले मैच के लिए, या जब लाइन या स्ट्रिंग के अंत या शुरुआत के लिए एक अक्षरांकीय चरित्र को जोड़ता है।
if (location.href.match(/(?:\b|_)franky(?:\b|_)))
यदि आप उपयोग करते हैं if(window.location.href.indexOf("sam"), तो आपको दूसरे शब्दों के बीच flotsamऔर same, के लिए मैच मिलेंगे । tomरेगेक्स के बिना, टमाटर और कल का मिलान करेगा।
इसे केस-सेंसिटिव बनाना उतना ही सरल है जितना कि इसे हटाना i।
इसके अलावा, अन्य फिल्टर जोड़ना भी उतना ही आसान है
if (location.href.match(/(?:\b|_)(?:franky|bob|billy|john|steve)(?:\b|_)/i))
की बात करते हैं (?:\b|_)। RegEx आमतौर पर परिभाषित _करता है word characterइसलिए यह शब्द सीमा का कारण नहीं बनता है। इससे (?:\b|_)निपटने के लिए हम इसका इस्तेमाल करते हैं। यह देखने के लिए कि क्या यह या तो मिल जाता है \bया _स्ट्रिंग के दोनों ओर।
अन्य भाषाओं को कुछ का उपयोग करने की आवश्यकता हो सकती है
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.
यह सब कहने की तुलना में आसान है
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
अन्य भाषाओं के फ्लेवर रेगुलर एक्सप्रेशंस का समर्थन करते हैं, \p{L}लेकिन जावास्क्रिप्ट ऐसा नहीं करता है, जो विदेशी पात्रों का पता लगाने के काम को बहुत आसान बना देगा। कुछ इस तरह[^\p{L}](filters|in|any|alphabet)[^\p{L}]
"window.location.contains is not a function"