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

例如,我有:

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

我想要得到:这是一个字符串。

到目前为止,我尝试了:

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

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


当前回答

var mystring = 'okay.this.is.a.string';
var myNewString = escapeHtml(mystring);

function escapeHtml(text) {
if('' !== text) {
    return text.replace(/&/g, "&")
               .replace(/&lt;/g, "<")
               .replace(/&gt;/g, ">")
               .replace(/\./g,' ')
               .replace(/&quot;/g, '"')
               .replace(/&#39/g, "'");
} 

其他回答

让a = "从前有一个国王。opeator传播。让。版本。const。”;

let data = a.r eall (".","");

答案:data = "曾经有一个king spread operator let ver const";

您需要对该字符串使用replaceAll()方法。

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

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

这更简洁/可读,应该比Fagner Brack发布的更好(toLowerCase不是在循环中执行的):

String.prototype.replaceAll = function(search, replace, ignoreCase) {
  if (ignoreCase) {
    var result = [];
    var _string = this.toLowerCase();
    var _search = search.toLowerCase();
    var start = 0, match, length = _search.length;
    while ((match = _string.indexOf(_search, start)) >= 0) {
      result.push(this.slice(start, match));
      start = match + length;
    }
    result.push(this.slice(start));
  } else {
    result = this.split(search);
  }
  return result.join(replace);
}

用法:

alert('Bananas And Bran'.replaceAll('An', '(an)'));

下面是replaceAll的另一个实现。希望它能帮助到别人。

    String.prototype.replaceAll = function (stringToFind, stringToReplace) {
        if (stringToFind === stringToReplace) return this;
        var temp = this;
        var index = temp.indexOf(stringToFind);
        while (index != -1) {
            temp = temp.replace(stringToFind, stringToReplace);
            index = temp.indexOf(stringToFind);
        }
        return temp;
    };

然后你可以使用它:

var myText =“我的名字是乔治”; var newText = myText。replaceAll(“乔治”,“迈克尔”);

还有一个很容易理解的解决方案:)

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