2011-04-01 11 views
115

मैं जावास्क्रिप्ट में कुछ पाठ को प्रतिस्थापित करने के लिए str_replace या इसके समान विकल्प का उपयोग करना चाहता हूं।जावास्क्रिप्ट में पाठ को प्रतिस्थापित करते हुए, मैं जावास्क्रिप्ट में str_replace कैसे कर सकता हूं?

var text = "this is some sample text that i want to replace"; 
var new_text = replace_in_javascript("want", "dont want", text); 
document.write("new_text"); 

देना चाहिए

this is some sample text that i dont want to replace 
+0

अजीब कोई भी नहीं देखा है कि PHP के 'str_replace' भी एक ही लंबाई है, जिसकी पहली सरणी में प्रत्येक स्ट्रिंग एक ही सूचकांक में दूसरी सरणी में तार के साथ बदल दिया जाता है की दो सरणियों स्वीकार करता है। कृपया http://stackoverflow.com/a/5069776/296430 को एकमात्र सही फ़ंक्शन के लिए देखें जो अब तक पाया गया है जो जावास्क्रिप्ट में इस सटीक व्यवहार की नकल करता है। –

+0

@JulesColle कि उत्तर अक्सर विफल रहता है - देखें कि यह क्यों विफल रहता है और यहां एक बेहतर समाधान: http://stackoverflow.com/a/37949642/445295 –

उत्तर

181

आप replace विधि का प्रयोग करेंगे:

text = text.replace('old', 'new'); 

पहला तर्क आप जो खोज रहे हैं, जाहिर है है। यह नियमित अभिव्यक्तियों को भी स्वीकार कर सकता है।

बस याद रखें कि यह मूल स्ट्रिंग को बदलता है। यह केवल नया मान देता है।

+3

धन्यवाद 'यह केवल लौटाता है और नहीं बदलता' के लिए बहुत कुछ धन्यवाद! यही वह था जो मैं अपने बालों को लंबे समय तक फाड़ रहा था जब तक कि मैं आपकी टिप्पणी में नहीं आया ... –

+60

string.replace ('old', 'new') केवल स्ट्रिंग में 'पुरानी' के पहले उदाहरण को प्रतिस्थापित करेगा। 'g' ध्वज के साथ नियमित अभिव्यक्ति का उपयोग करके realmag777 के उत्तर में स्ट्रिंग के सभी उदाहरणों को प्रतिस्थापित किया जाएगा। text = text.replace (/ old/g, 'new') 'old' – Jazzerus

+0

के सभी उदाहरणों को प्रतिस्थापित करेगा, केस-संवेदी नहीं होने के बारे में कैसे? –

11

आप ऐसा ही कुछ लिखना चाहिए:

var text = "this is some sample text that i want to replace"; 
var new_text = text.replace("want", "dont want"); 
document.write(new_text); 
4

जावास्क्रिप्ट में, आप स्ट्रिंग ऑब्जेक्ट, उदा replace विधि कॉल "this is some sample text that i want to replace".replace("want", "dont want"), जो प्रतिस्थापित स्ट्रिंग को वापस कर देगा।

var text = "this is some sample text that i want to replace"; 
var new_text = text.replace("want", "dont want"); // new_text now stores the replaced string, leaving the original untouched 
4

एचएम .. क्या आपने प्रतिस्थापन() को चेक किया था?

आपका कोड की तरह इस

var text = "this is some sample text that i want to replace"; 
var new_text = text.replace("want", "dont want"); 
document.write(new_text); 
68

बस अधिक दिखेगा:

city_name=city_name.replace(/ /gi,'_'); 

साथ सभी रिक्त स्थान बदलता है '_'!

+7

यह "str_replace" (वैश्विक) "का एक और सटीक अनुवाद है। चुना गया उत्तर केवल पहले उदाहरण को प्रतिस्थापित करेगा। – rICh

+0

अक्षर से बचने के लिए मत भूलना, विशेष रूप से यदि आप हेक्स से बच रहे हैं: उदाहरण के लिए \ x27 '.replace (/ \\ x3B/g, ';')' ' – dmayo

10

कि समारोह की जगह केवल एक घटना .. आप इस समारोह का प्रयास करना चाहिए अगर आप अनेक गतिविधियां प्रतिस्थापित करने की आवश्यकता: http://phpjs.org/functions/str_replace:527

नहीं जरूरी। हंस Kesting जवाब देखें:

city_name = city_name.replace(/ /gi,'_'); 
8

कोड है कि दूसरों को, आप केवल एक घटना की जगह दे रहे हैं, जबकि नियमित अभिव्यक्ति का उपयोग करते हुए उन सब को बदल देता है (जैसे @sorgit कहा)। "नहीं करना चाहता", हमें इस कोड के साथ प्रतिस्थापित करने के लिए सभी "चाहते हैं":

var text = "this is some sample text that i want to replace"; 
var new_text = text.replace(/want/g, "dont want"); 
document.write(new_text); 

चर "नया_पाठ" होने का परिणाम देगा "यह कुछ नमूना पाठ है कि मैं बदलना चाहते हैं न कि"।

नियमित अभिव्यक्ति की एक त्वरित मार्गदर्शिका प्राप्त करने के लिए, यहां जाएं:
http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
str.replace() के बारे में अधिक जानने के लिए, यहां जाएं:
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace
गुड लक!

8

ये सभी विधियां मूल मान को संशोधित नहीं करती हैं, नए तार लौटाती हैं।

var city_name = 'Some text with spaces'; 

साथ _

city_name.replace(' ', '_'); // Returns: Some_text with spaces 

बदलता सभी रिक्त स्थान regex उपयोग करने के साथ _ 1 अंतरिक्ष से बदलता है। आप regex का उपयोग करने की जरूरत है, तो मैं इसे https://regex101.com/

city_name.replace(/ /gi,'_'); // Returns: Some_text_with_spaces 

साथ जांच करने की अनुशंसा सभी रिक्त स्थान साथ _ बदलता regex बिना। कार्यात्मक तरीका

city_name.split(' ').join('_'); // Returns: Some_text_with_spaces 
संबंधित मुद्दे

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