"This is the best moth".match(/\bth/gi);
या एक चर के साथ अपने स्ट्रिंग
var string = "This is the best moth";
alert(string.match(/\bth/gi));
\b
एक regex में के लिए एक शब्द सीमा तो \bth
केवल एक th
से मेल खाएगी है कि एक शब्द के प्रारंभ में।
gi
एक वैश्विक मैच (सभी घटनाओं के लिए देखो) और केस संवेदी
(मैं moth
वहाँ में करने के लिए जाँच करने के लिए है कि यह मेल नहीं खाता है फेंक दिया एक चेतावनी के रूप)
jsFiddle example
के लिए है
संपादित करें:
तो, एक बोव केवल उस भाग को लौटाता है जो आप मेल खाते हैं (th
)। यदि आप पूरे शब्द वापस करना चाहते हैं, तो आपको पूरे शब्द से मेल खाना पड़ेगा।
यह वह जगह है जहां चीजें मुश्किल तेजी से मिलती हैं। कोई HTML इकाई पत्र के साथ पहली:
string.match(/\bth[^\b]*?\b/gi);
Example
मिलान करने के लिए पूरे शब्द शब्द सीमा \b
हड़पने से जाना th
गैर शब्द सीमाओं [^\b]
के बाद जब तक आप एक और शब्द सीमा \b
को मिलता है। *
का अर्थ है कि आप ?
चिह्न का 0 या अधिक पिछला (गैर शब्द सीमाएं) देखना चाहते हैं, इसका मतलब है कि यह एक आलसी मैच है। दूसरे शब्दों में यह जितना बड़ा हो सके उतना बड़ा विस्तार नहीं करता है, लेकिन पहले अवसर पर रुक जाता है।
यदि आपके पास ä (ä
) जैसे HTML इकाई वर्ण हैं तो चीजें वास्तव में जटिल हो जाती हैं, और आपको व्हाइटस्पेस या व्हाइटस्पेस और परिभाषित वर्णों का एक सेट उपयोग करना होगा जो शब्द सीमाओं पर हो सकते हैं।
string.match(/\sth[^\s]*|^th[^\s]*/gi);
Example with HTML entities.
जब से हम शब्द सीमाओं का उपयोग नहीं कर रहे हैं, हम अलग स्ट्रिंग की शुरुआत (|^
) की देखभाल करने के लिए है।
उपर्युक्त शब्दों की शुरुआत में सफेद स्थान पर कब्जा करेगा। \b
का उपयोग सफेद स्थान पर कब्जा नहीं करेगा, क्योंकि \b
की कोई चौड़ाई नहीं है।
+1 मुझे परिचय देने के लिए धन्यवाद \ b :) –
@ माइकल - वाईडब्ल्यू! यह रेगेक्स के लिए एक महान संदर्भ है - http://www.regular-expressions.info/reference.html –
यह बहुत अच्छा काम करता है, सिवाय इसके कि यह विदेशी लोगों के बाद वर्णों से मेल खाएगा। उदाहरण के लिए यदि मेरी स्ट्रिंग "मैन" है, और मैं "एन" की खोज करता हूं, तो यह एम के बाद एमए से मेल खाएगा ... कोई विचार? – Abadaba