2012-07-04 13 views
24

में सभी अंकों को प्रतिस्थापित करें मुझे सभी अंकों को प्रतिस्थापित करने की आवश्यकता है।जेएस रेगेक्स: स्ट्रिंग

मेरा फ़ंक्शन केवल पहले अंक को प्रतिस्थापित करता है।

var s = "04.07.2012"; 
alert(s.replace(new RegExp("[0-9]"), "X")); // returns "X4.07.2012" 
              // should be XX.XX.XXXX" 
+0

मैं तुम्हें वैश्विक विकल्प की जगह की जरूरत है। और '[0-9]' को '\ d' में सरलीकृत किया जा सकता है। – nhahtdh

उत्तर

49

आप अपने रेगुलर एक्सप्रेशन से करने के लिए "वैश्विक" ध्वज जोड़ने की जरूरत:

s.replace(new RegExp("[0-9]", "g"), "X") 

या, शायद खूबसूरत, का उपयोग कर निर्मित शाब्दिक regexp वाक्य रचना:

.replace(/[0-9]/g, "X") 
+1

मैं उन्हें 'एक्स' के बजाय एक यूनिकोड चरित्र के साथ कैसे बदलूं? उदाहरण के लिए '\ U2022'? – Cmag

+1

उत्तर: 'प्रतिस्थापित करें (/ [0-9]/जी,' \ u2022 '); ' – Cmag

7

उपयोग

s.replace(/\d/g, "X") 

जो सभी घटनाओं की जगह लेगा। g का अर्थ है वैश्विक मैच और इस प्रकार पहली घटना के बाद मिलान करना बंद नहीं होगा।

या अपने RegExp निर्माता के साथ रहने के लिए:

s.replace(new RegExp("\\d", "g"), "X") 
2

के रूप में यह कम से[0-9]है /gसंशोधक, यानी वैश्विक मैच प्रदर्शन करने के लिए (न कि पहले के बाद रोक से सभी मैचों को खोजने)

आप अंकों के लिए\dउपयोग कर सकते हैं प्रयोग किया जाता है।

जावास्क्रिप्ट:

var s = "04.07.2012"; 
echo(s.replace(/\d/g, "X")); 

आउटपुट:

XX.XX.XXXX 
2

संख्या और फिर तार जो निर्दिष्ट के साथ बदल सकते हैं।

<script type="text/javascript"> 

var string = "my contact number is 9545554545. my age is 27."; 
alert(string.replace(/\d+/g, "XXX")); 

</script> 

*: यह दो तरीकों

  1. एक रेगुलर एक्सप्रेशन शाब्दिक

  2. का उपयोग

का उपयोग करके कीवर्ड RegExp ऑब्जेक्ट के लिए रेगुलर एक्सप्रेशन शाब्दिक का उपयोग करना द्वारा हासिल की है * आउटपुट: ** मेरा संपर्क नंबर एक्स है XX। मेरी उम्र XXX है।

अधिक जानकारी के लिए :

http://www.infinetsoft.com/Post/How-to-replace-number-with-string-in-JavaScript/1156

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