如何用JavaScript替换字符串中的所有点

我想在JavaScript字符串中替换所有出现的点( .

例如,我有:

var mystring = 'okay.this.is.a.string';

我想得到: okay this is a string

到目前为止我尝试过:

mystring.replace(/./g,' ')

但是这最终将所有的字符串替换为空格。


你需要逃避. 因为它在正则表达式中具有“任意字符”的含义。

mystring = mystring.replace(/./g,' ')

一个更容易理解的解决方案:)

var newstring = mystring.split('.').join(' ');

/**
 * 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。 但最终这样的讨论完全没有意义,性能差异并不值得现实世界中代码的易读性,所以即使性能与正则表达式方法不同,我的答案仍然有效。

EDIT2:
我已经创建了一个允许您使用流畅界面来执行此操作的库:

replace('.').from('okay.this.is.a.string').with(' ');

请参阅https://github.com/FagnerMartinsBrack/str-replace。

链接地址: http://www.djcxy.com/p/94177.html

上一篇: How to replace all dots in a string using JavaScript

下一篇: Best way to store chat messages in elasticsearch