2010-05-25 13 views
52

में वर्ण कितनी बार होता है क्या यह जांचने का एक आसान तरीका है कि स्ट्रिंग में वर्ण कितनी बार प्रकट होता है?जावास्क्रिप्ट: एक स्ट्रिंग

+3

संभावित डुप्लिकेट [जावास्क्रिप्ट में एक स्ट्रिंग में किसी वर्ण की घटनाओं की संख्या की गणना करें] (http://stackoverflow.com/questions/881085/count-the-number-of-occurances-of-a-character- इन-ए-स्ट्रिंग-इन-जावास्क्रिप्ट) –

उत्तर

41

आप स्ट्रिंग में किसी अन्य चरित्र को हटाने और लंबाई की जांच कर सकता है:

str.replace(/[^a]/g, "").length 

यहाँ यह गिना जाता है कि कितने a रों str में हैं।

+0

आपको बहुत धन्यवाद – Ruth

3
var s = "dqsskjhfds"; 
alert(s.length - s.replace(/a/g, "").length); // number of 'a' in the string 
+2

कितना गड़बड़ है। – Kobi

22

यह उदाहरण नीचे में गिना जाता है a:

str = "A man is as good as his word"; 
alert(str.split('a').length-1); 

आप मामले चाहते हैं असंवेदनशील आप

alert(str.split(new RegExp("a", "gi")).length-1); 

तो यह है कि यह पकड़ लेता है "ए" और "एक" की तरह कुछ चाहते हैं ... "जी" झंडा वास्तव में जरूरी नहीं है, लेकिन आपको "i" ध्वज की आवश्यकता है

+0

धन्यवाद यह बहुत अच्छा काम किया! –

+1

सबसे कुशल उत्तर, दुख की बात है कि दूसरों को इतने सारे वोट मिले। – Josh

8

"ए" की संख्या की गणना करने के लिए RegEx का उपयोग करें एन एक स्ट्रिंग।

var string = 'aajlkjjskdjfAlsj;gkejflksajfjskda'; 
 

 
document.write(string.match(/a/gi).length);

मुझे यह कैसे काम करता समझाता हूँ:

string.match यह एक रेगुलर एक्सप्रेशन से विधि है। यह निर्दिष्ट स्ट्रिंग के भीतर निर्दिष्ट RegEx की खोज करता है (इस मामले में, स्ट्रिंग "स्ट्रिंग")।

(/a/gi) यह वास्तविक RegEx है। यह पढ़ता है, "चरित्र ए ढूंढें।" यह बहुत सरल है। इसमें दो झंडे, "जी" और "मैं" भी होते हैं। "जी" चरित्र "ए" के सभी अवसरों को खोजने के लिए कहता है। अन्यथा यह केवल पहला ही मिलेगा, और यह पहले नंबर पर गिनती नहीं करेगा। दूसरा झंडा "मैं" है। यह RegEx उस चरित्र के सभी मामलों से मेल खाता है। अगर वह ध्वज (i) वहां नहीं था, तो उपरोक्त कोड केवल 4 की गणना करेगा, क्योंकि यह स्ट्रिंग में अपरकेस "ए" को छोड़ देगा। "I" की वजह से, यह ऊपरी और निचले मामले से मेल खाएगा।

string.match सभी मैचों की एक सरणी देता है, इसलिए हम सरणी प्रविष्टियों की संख्या को पुनर्प्राप्त करने के लिए length विधि का उपयोग करते हैं। इतना ही आसान!

संबंधित मुद्दे