2011-08-22 14 views
5

ठीक है, मुझे जावास्क्रिप्ट में एक नियमित अभिव्यक्ति के साथ कुछ मदद की आवश्यकता है।जावास्क्रिप्ट नियमित अभिव्यक्ति, केवल संख्याओं और अल्पविरामों की अनुमति दें

मेरे पास यह फ़ंक्शन है जो हर चीज को लेता है लेकिन संख्या .. लेकिन मुझे अल्पविरामों को भी अनुमति देने की आवश्यकता है।

function validDigits(n){ 
return n.replace(/\D+/g, '');} 

मैं अभी भी रेगेक्स वाक्यविन्यास पर काफी बादल हूं, इसलिए यदि कोई मेरी मदद कर सकता है तो मैं इसकी सराहना करता हूं।

उत्तर

10
function validDigits(n){ 
    return n.replace(/[^\d,]+/g, ''); 
} 

जब आप वर्ग कोष्ठक और प्रयोग^खुला ब्रैकेट के बाद आप हर चरित्र है कि कोष्ठक के बीच उन में से एक नहीं है के लिए खोज, इसलिए यदि आप इस विधि का उपयोग और सब कुछ के लिए खोज है कि एक नंबर या एक नहीं है एक अल्पविराम यह अच्छी तरह से काम करना चाहिए।

+0

ठीक है यह मिल गया। बस बस^के साथ एक ब्रैकेट में डाल दिया और अल्पविराम जोड़ें। धन्यवाद। – John

0

एक वर्ग अक्षरों का प्रयोग करें:

/[^\d,]+/g 
0

इस कोड को बहुत अच्छा है, आप अगर चरित्र की अनुमति नहीं है, regex मॉडल आप चाहते हैं चुनते हैं, तो इसे नष्ट कर दिया है।

<script type="text/javascript"> 
var r={ 
'special':/[\W]/g, 
'quotes':/['\''&'\"']/g, 
'notnumbers':/[^\d]/g, 
'notletters':/[A-Za-z]/g, 
'numbercomma':/[^\d,]/g, 
} 

function valid(o,w){ 
o.value = o.value.replace(r[w],''); 
} 
</script> 

एचटीएमएल

<input type="text" name="login" onkeyup="valid(this,'numbercomma')" /> 
संबंधित मुद्दे