2011-02-08 18 views
21

मुझे जावास्क्रिप्ट में एक स्ट्रिंग में "[किसी भी संख्या]" के लिए परीक्षण करने की आवश्यकता है। मैं इसे कैसे मेल करूंगा?नियमित अभिव्यक्ति [कोई भी संख्या]

ओह, "[" और "]" को भी मिलान करने की आवश्यकता है।

तो "[1]" या "[12345]" जैसे स्ट्रिंग एक मैच है।

गैर मैच: "[23,432" या "1]"

उदाहरण के लिए

तो:

$('.form .section .parent').find('input.text').each(function(index){ 
     $(this).attr("name", $(this).attr("name").replace("[current]", "['"+index+"']")); 
}); 

मैं इनपुट बदलने की आवश्यकता नाम फ़ील्ड: "आइटम [0] .firstname" को "आइटम [1] .firstname " धन्यवाद

+0

http://stackoverflow.com/questions/18082/validate-numbers-in-javascript-isnumeric – mdrg

उत्तर

42

अद्यतन: अपने अद्यतन प्रश्न के लिए

variable.match(/\[[0-9]+\]/); 

इस प्रयास करें:

variable.match(/[0-9]+/); // for unsigned integers 
variable.match(/[-0-9]+/); // for signed integers 
variable.match(/[-.0-9]+/); // for signed float numbers 

आशा इस मदद करता है!

+0

मैंने इस $ (this) .attr ("name", $ (this) .attr ("name") की कोशिश की .replace ("/ \\ [[0-9] + \\] /", "['" + अनुक्रमणिका + "']")); लेकिन यह काम नहीं करता है। क्या मुझसे कुछ गलत हो रही है? – ShaneKm

+1

कोई बात नहीं। यह काम करता है: var name = $ (this) .attr ("name"); var newname = $ (this) .attr ("name")। प्रतिस्थापित करें (name.match (/ \\ [[0-9] + \\] /), "[" + अनुक्रमणिका + "]"); – ShaneKm

+0

@aorcsik लाइफ सेवर :) –

0
var mask = /^\d+$/; 
if (myString.exec(mask)){ 
    /* That's a number */ 
} 
0

आप निम्न फ़ंक्शन का उपयोग सबसे बड़ी [number] किसी भी स्ट्रिंग में खोजने के लिए कर सकते हैं।

यह इंटीजर के रूप में सबसे बड़ा [number] का मान देता है।

var biggestNumber = function(str) { 
    var pattern = /\[([0-9]+)\]/g, match, biggest = 0; 

    while ((match = pattern.exec(str)) !== null) { 
     if (match.index === pattern.lastIndex) { 
      pattern.lastIndex++; 
     } 
     match[1] = parseInt(match[1]); 
     if(biggest < match[1]) { 
      biggest = match[1]; 
     } 
    } 
    return biggest; 
} 

डेमो

निम्नलिखित डेमो हर बार जब आप बटन पर क्लिक करें अपने पाठ क्षेत्र में सबसे बड़ी संख्या की गणना।

यह आपको टेक्स्टरेरा के साथ खेलने और फिर एक अलग पाठ के साथ फ़ंक्शन का परीक्षण करने की अनुमति देता है।

var biggestNumber = function(str) { 
 
    var pattern = /\[([0-9]+)\]/g, match, biggest = 0; 
 

 
    while ((match = pattern.exec(str)) !== null) { 
 
     if (match.index === pattern.lastIndex) { 
 
      pattern.lastIndex++; 
 
     } 
 
     match[1] = parseInt(match[1]); 
 
     if(biggest < match[1]) { 
 
      biggest = match[1]; 
 
     } 
 
    } 
 
    return biggest; 
 
} 
 

 
document.getElementById("myButton").addEventListener("click", function() { 
 
    alert(biggestNumber(document.getElementById("myTextArea").value)); 
 
});
<div> 
 
    <textarea rows="6" cols="50" id="myTextArea"> 
 
this is a test [1] also this [2] is a test 
 
and again [18] this is a test. 
 
items[14].items[29].firstname too is a test! 
 
items[4].firstname too is a test! 
 
    </textarea> 
 
</div> 
 

 
<div> 
 
    <button id="myButton">Try me</button> 
 
</div>

भी देखें this Fiddle!

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