/**
* ReplaceAll by Fagner Brack (MIT Licensed)
* Replaces all occurrences of a substring in a string
*/
String.prototype.replaceAll = function( token, newToken, ignoreCase ) {
var _token;
var str = this + "";
var i = -1;
if ( typeof token === "string" ) {
if ( ignoreCase ) {
_token = token.toLowerCase();
while( (
i = str.toLowerCase().indexOf(
_token, i >= 0 ? i + newToken.length : 0
) ) !== -1
) {
str = str.substring( 0, i ) +
newToken +
str.substring( i + token.length );
}
} else {
return this.split( token ).join( newToken );
}
}
return str;
};
alert('okay.this.is.a.string'.replaceAll('.', ' '));
Regex का उपयोग करने की तुलना में तेज़ ...
संपादित करें:
हो सकता है कि जिस समय मैंने यह कोड किया था मैंने jsperf का उपयोग नहीं किया। लेकिन अंत में ऐसी चर्चा पूरी तरह से व्यर्थ है, प्रदर्शन अंतर वास्तविक दुनिया में कोड की सुगमता के लायक नहीं है, इसलिए मेरा जवाब अभी भी मान्य है, भले ही प्रदर्शन rexx दृष्टिकोण से अलग हो।
EDIT2:
मैंने एक लीवर बनाया है जो आपको एक धाराप्रवाह इंटरफ़ेस का उपयोग करने की अनुमति देता है:
replace('.').from('okay.this.is.a.string').with(' ');
Https://github.com/FagnerMartinsBrack/str-replace देखें ।