सभी व्हाट्सएप पात्रों को बदलें


136

मैं जावास्क्रिप्ट में सफेद अंतरिक्ष वर्णों (स्पेस, टैब, न्यूलाइन) की सभी घटनाओं को बदलना चाहता हूं।
ऐसा कैसे करें?

मैंने कोशिश की:

str.replace(/ /gi, "X")


1
"X" क्या है और क्यों?
मुहम्मद शहजाद

String.replace ('', "X") के बारे में क्या;
रमेश राजेंद्रन

जवाबों:


315

तुम्हें चाहिए \s

स्पेस, टैब, फॉर्म फीड, लाइन फीड सहित एक ही सफेद स्पेस कैरेक्टर से मेल खाता है।

के बराबर

[ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]

में फ़ायरफ़ॉक्स और [ \f\n\r\t\v]में आईई


str = str.replace(/\s/g, "X");

41
+1 यह दिखाने के लिए याद रखें कि replaceफ़ंक्शन संशोधित नहीं हुआ है str, इसलिए आपको इसे वापस असाइन करना होगा।
FishBasketGordo

1
किसी फ़ंक्शन में, आप str.replace को वापस कर सकते हैं, इसलिए आपको उस दायरे में असाइन करने की आवश्यकता नहीं है।
स्टीव के

R का उपयोग करने के लिए याद रखें perl = TRUE, जैसेgsub(pattern = "[\\s]+", ..., perl = TRUE)
MS Berends

30

\sएक मेटा चरित्र है जो सभी सफेद स्थान को कवर करता है। आपको इसे केस-असंवेदनशील बनाने की आवश्यकता नहीं है - सफेद स्थान के पास मामला नहीं है।

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

19

हम इसका उपयोग तब भी कर सकते हैं जब हम एक ही वर्ण के साथ सभी एकाधिक सम्मिलित रिक्त स्थानों को बदलना चाहते हैं:

str.replace(/\s+/g,'X');

इसे यहां देखें: https://regex101.com/r/d9d53G/1

व्याख्या

/ \s+/ जी

  • \s+किसी भी व्हाट्सएप चरित्र से मेल खाता है (बराबर [\r\n\t\f\v ])
  • + क्वांटिफायर - एक और असीमित समय के बीच मेल खाता है, जितनी बार संभव हो उतनी बार वापस दे रहा है (लालची)

  • वैश्विक पैटर्न के झंडे
    • जी संशोधक: जी लोबाल। सभी मैच (पहले मैच के बाद नहीं लौटे)


4

यदि तुम प्रयोग करते हो

str.replace(/\s/g, "");

यह सभी व्हाट्सएप को बदल देता है। उदाहरण के लिए:

var str = "hello my world";
str.replace(/\s/g, "") //the result will be "hellomyworld"

4

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

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

यह काम नहीं करता है। \s\n\tमैच: कोई भी व्हाट्सएप चरित्र, उसके बाद एक नई पंक्ति, उसके बाद टैब।
डैनियल कैसिडी

3

नहीं / जीआई लेकिन / जी

var fname = "My Family File.jpg"
fname = fname.replace(/ /g,"_");
console.log(fname);

देता है

"My_Family_File.jpg"

1

वास्तव में यह काम किया गया है लेकिन

बस यह कोशिश करो।

जैसे स्ट्रिंग स्ट्रिंग में मान / \ / s लें

String a = /\s/g;

str = str.replaceAll(a,"X");

जहां से मिला replaceAllसे?
इओनेल लुपु

0

मैंने अंडरस्कोर.स्ट्रिंग से "स्लगिफ़" विधि का उपयोग किया है और यह एक आकर्षण की तरह काम करता है:

https://github.com/epeli/underscore.string#slugifystring--string

अच्छी बात यह है कि आप वास्तव में सिर्फ इस पद्धति का आयात कर सकते हैं, पूरे पुस्तकालय को आयात करने की आवश्यकता नहीं है।

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