2011-11-10 15 views
5

के साथ बदलें मैं निम्नलिखित स्ट्रिंग है:वैश्विक js

[27564][85938][457438][273][48232] 

मैं बदलने के लिए सब [ 'के साथ' चाहते हैं। मैंने निम्नलिखित की कोशिश की लेकिन यह काम नहीं किया:

var str = '[27564][85938][457438][273][48232]' 
var nChar = '['; 
var re = new RegExp(nChar, 'g')  
var visList = str.replace(re,''); 

मैं यहां क्या गलत कर रहा हूं?

अग्रिम में बहुत धन्यवाद।

+0

'। जगह (/ \ [/ g, '')' –

+0

आप '/.../ g' के बजाय' RegExp' का उपयोग क्यों कर रहे हैं? क्या एनएचएचआर का मूल्य बदल सकता है? –

उत्तर

7

आप [ अन्यथा यह एक character class की शुरुआत के रूप में व्याख्या की है से बचने के लिए की जरूरत है:

var nChar = '\\['; 

तो NCHAR एक चर (और मुझे लगता है यह है अन्यथा RegExp का उपयोग कर के बजाय में थोड़ा बिंदु होगा /.../g) तो आप इस सवाल का उपयोगी हो सकते हैं:

+0

पूरी तरह से काम किया .. बहुत धन्यवाद ..! – neojakey

1
var string = "[27564][85938][457438][273][48232]"; 
alert(string.replace(/\[/g, '')); //outputs 27564]85938]457438]273]48232] 

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

0

आज मैं इस समस्या से मुलाकात की। आवश्यकता उपयोगकर्ता इनपुट स्ट्रिंग में सभी "C++" को प्रतिस्थापित करती है। क्योंकि "+" का अर्थ रेग एक्सप्रेशन में है, string.replace विफल रहता है। इसलिए मैंने जेएस स्ट्रिंग के लिए एक बहु-प्रतिस्थापन फ़ंक्शन लिखा था। उम्मीद है कि यह मदद कर सकता है।

String.prototype.mreplace = function (o, n) { 
    var off = 0; 
    var start = 0; 
    var ret = ""; 
    while(true){ 
     off = this.indexOf(o, start); 
     if (off < 0) 
     { 
      ret += this.substring(start, this.length); 
      break; 
     } 
     ret += this.substring(start, off) + n; 
     start = off + o.length; 
    } 
    return ret; 
} 

उदाहरण: "ababc" .mreplace ("एक", "एक--"); // रिटर्न "ए - बीए - बीसी"

+0

ps: मुझे regexp से नफरत है। – jarjar