/**
* 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('.', ' '));
রেজেক্স ব্যবহারের চেয়ে আরও দ্রুত ...
সম্পাদনা:
সম্ভবত আমি এই কোডটি করার সময় আমি jsperf ব্যবহার করিনি। তবে শেষ পর্যন্ত এ জাতীয় আলোচনা সম্পূর্ণ অর্থহীন, পারফরম্যান্সের পার্থক্য বাস্তব বিশ্বে কোডটির সুগঠনের পক্ষে মূল্যবান নয়, তাই আমার উত্তরটি এখনও বৈধ, এমনকি যদি পারফরম্যান্স রেজেক্স পদ্ধতির থেকে পৃথক হয়।
সম্পাদনা 2:
আমি একটি ফলস তৈরি করেছি যা আপনাকে সাবলীল ইন্টারফেস ব্যবহার করে এটি করতে দেয়:
replace('.').from('okay.this.is.a.string').with(' ');
Https://github.com/FagnerMartinsBrack/str-replace দেখুন ।