जवाबों:
निम्नलिखित करना होगा, लेकिन केवल एक घटना की जगह लेगा:
"string".replace('/', 'ForwardSlash');
वैश्विक प्रतिस्थापन के लिए, या यदि आप नियमित अभिव्यक्ति पसंद करते हैं, तो आपको बस स्लैश से बचना होगा:
"string".replace(/\//g, 'ForwardSlash');
"string".replace('/', 'ForwardSlash', 'g')लेकिन यह गैर-मानक तर्क है जो केवल फ़ायरफ़ॉक्स afaik में काम करता है।
"string".replace(/\//g, 'ForwardSlash');काम करता है, लेकिन इसमें से / g को हटा दें और यह काम नहीं करता है।
/। जी के बिना यह केवल एक उदाहरण को प्रतिस्थापित करता है। और अगर आप हटाते /gहैं तो आप आखिरी से पूरी तरह से रेगेक्स को तोड़ देते हैं।
var str = '/questions'; // input: "/questions"
while(str.indexOf('/') != -1){
str = str.replace('/', 'http://stackoverflow.com/');
}
alert(str); // output: "http://stackoverflow.com/questions"
प्रस्तावित रेगेक्स /\//gने मेरे लिए काम नहीं किया; शेष पंक्ति ( //g, replacement);) पर टिप्पणी की गई थी।
यह क्रिस्टोफर लोमबिन्स विचार है लेकिन सही कोड के साथ:
function replace(str,find,replace){
if (find != ""){
str = str.toString();
var aStr = str.split(find);
for(var i = 0; i < aStr.length; i++) {
if (i > 0){
str = str + replace + aStr[i];
}else{
str = aStr[i];
}
}
}
return str;
}
उदाहरण उपयोग:
var somevariable = replace('//\\\/\/sdfas/\/\/\\\////','\/sdf','replacethis\');
जावास्क्रिप्ट वैश्विक स्ट्रिंग प्रतिस्थापन अनिवार्य रूप से जटिल है। यह फ़ंक्शन उस समस्या को हल करता है। शायद एक छोटा सा प्रदर्शन प्रभाव है, लेकिन मुझे यकीन है कि इसकी लापरवाही है।
एक वैकल्पिक फ़ंक्शन का उपयोग करता है, बहुत क्लीनर दिखता है, लेकिन उपरोक्त फ़ंक्शन की तुलना में औसतन 25 से 20 प्रतिशत धीमा है:
function replace(str,find,replace){
if (find !== ""){
str = str.toString().split(find).join(replace);
}
return str;
}