2010-10-17 21 views
12

से नंबर प्राप्त स्ट्रिंग इसजावास्क्रिप्ट/jQuery - स्ट्रिंग

"blabla blabla-5 amount-10 blabla direction-left" 

तरह लग रहा है मैं सिर्फ "amount-" के बाद नंबर कैसे प्राप्त कर सकते हैं, और "direction-" के तुरंत बाद ही पाठ?

+2

Fol (JQuery के लिए कोई जरूरत नहीं है) क्या नियम कम करना? सभी नंबर निकालें? वांछित परिणाम, एक सरणी क्या है? –

+0

नहीं, बस उन पैरामीटर के बाद संख्या/स्ट्रिंग। आउटपुट एक स्ट्रिंग होना चाहिए – Alex

उत्तर

17

यह regular expressions उपयोग करता है और exec method:

var s = "blabla blabla-5 amount-10 blabla direction-left"; 
var amount = parseInt(/amount-(\d+)/.exec(s)[1], 10); 
var direction = /direction-([^\s]+)/.exec(s)[1]; 

कोड एक त्रुटि का कारण होगा यदि राशि या दिशा लापता है; यदि यह संभव है, तो जांच करें कि निष्पादन का परिणाम वापस आने वाले सरणी में अनुक्रमणित करने से पहले गैर-शून्य है या नहीं।

+0

धन्यवाद कि यह था :) – Alex

6

आप रेगेक्सपी का उपयोग by w3schools समझा सकते हैं। सुझाव:

str = "blabla blabla-5 amount-10 blabla direction-left" 
alert(str.match(/amount-([0-9]+)/)); 

Otherwize आप बस चाहते हैं सभी नंबरों को तो पैटर्न [0-9] + केवल उपयोग कर सकते हैं। str.match एक सरणी लौटाएगा।

+2

उह-ओह http://w3fools.com/ –

38

यह सभी नंबरों को कोमा द्वारा अलग हो जाएगा:

 
var str = "10 is smaller than 11 but greater then 9"; 
var pattern = /[0-9]+/g; 
var matches = str.match(pattern); 

निष्पादन के बाद, स्ट्रिंग matches मूल्यों "10,11,9"

होगा तुम बस thew पहली घटना के लिए देख रहे हैं, पैटर्न /[0-9]+/ हो जाएगा - जो वापस आ जाएगी 10

+0

यह सबसे प्रभावी तरीका है। धन्यवाद! –

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