PHP कोड सब कुछ लेकिन संख्याओं को हटाने के लिए


135

मैं एक स्ट्रिंग से सब कुछ निकालने की कोशिश कर रहा हूं, लेकिन सिर्फ नंबर (0-9)।

मुझे लगा ये काम करेगा ।।

echo preg_replace("[^0-9]","",'604-619-5135');

लेकिन यह इकोस "604-619-5135" है। मैं क्या खो रहा हूँ???

जवाबों:


277

इसे इस्तेमाल करे:

preg_replace('/[^0-9]/', '', '604-619-5135');

preg_replace PCREs का उपयोग करता है जो आम तौर पर एक के साथ शुरू और समाप्त होता है /


इनर / डबल कोटिंग का पीसीआरई थियो से कोई लेना-देना नहीं है। जाहिरा तौर पर (पहले के दिनों में (?flags)) जिन लोगों ने फ़ंक्शन / एपीआई को डिज़ाइन किया / लिखा था, उन्होंने सोचा था कि /flagsअतिरिक्त फ़ंक्शन पैरामीटर का उपयोग करने के बजाय regex झंडे को दोहरे उद्धृत रूप से पास करना बेहतर होगा ।
Qtax

6
@ क्यूटैक्स: अच्छी बात है, हाँ, मुझे पता है कि हमें "ग्रीप" शब्द कहाँ से मिलता है ("जी / रे / पी")
क्रिस एबेल

109

यह भविष्य के डेवलपर्स के लिए है, आप यह भी कोशिश कर सकते हैं। सरल भी

echo preg_replace('/\D/', '', '604-619-5135');

41
हैलो, मैं भविष्य से एक डेवलपर हूं। यह वास्तव में हमारी जरूरतों को अच्छी तरह से पूरा किया है। धन्यवाद।
zesda

6
मैं Zesda और कर सकते हैं पुष्टि की तुलना में भविष्य में आगे से हूँ, यह अभी भी एक मदद है
myshadowself

3
मैं भविष्य में 2 वापस आ गया हूं और मैं पुष्टि कर सकता हूं कि उन्हें अभी भी बेहतर तरीका नहीं मिला है।
इयोन

4
मैं सबसे दूर के भविष्य से बहुत आखिरी डेवलपर हूं। मुझे यह कहते हुए दुख हो रहा है कि यह अब किसी काम का नहीं है। तुम लोगों को इतने सारे प्लास्टिक के तिनके का इस्तेमाल नहीं करना चाहिए था, मुझे विश्वास है कि जब तुम यहां पहुंचोगे तो तुम देखोगे .... अगर तुम इसे बनाते हो।
जेरेमी

2
सिर्फ FYI करें: हम 39 वीं शताब्दी में अभी भी इसका उपयोग करते हैं।
उपयोगकर्ता -44651

11

आपको पैटर्न को एक सीमांकक में संलग्न करना होगा - आमतौर पर स्लैश (/) का उपयोग किया जाता है। इसे इस्तेमाल करे:

echo preg_replace("/[^0-9]/","",'604-619-5135');


3

उन लोगों के लिए बहुत अधिक व्यावहारिक तरीका जो रेगेक्स का उपयोग नहीं करना चाहते हैं:

$data = filter_var($data, FILTER_SANITIZE_NUMBER_INT);

नोट: यह फोन नंबर के साथ भी काम करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.