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

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

例如,我有:

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

我想得到: okay this is a string

到目前为止,我尝试了:

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

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


#1楼

str.replace(new RegExp(".","gm")," ")

#2楼

我在点上添加双反斜杠以使其起作用。 欢呼。

var st = "okay.this.is.a.string";
var Re = new RegExp("\\.","g");
st = st.replace(Re," ");
alert(st);

#3楼

String.prototype.replaceAll = function(character,replaceChar){
    var word = this.valueOf();

    while(word.indexOf(character) != -1)
        word = word.replace(character,replaceChar);

    return word;
}

#4楼

这是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(“ George”,“ Michael”);


#5楼

这更简洁/可读,并且应该比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)'));

#6楼

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, "'");
} 

#7楼

对于这种简单的情况,我还建议使用javascript内置的方法。

您可以尝试这样:

"okay.this.is.a.string".split(".").join("")

问候


#8楼

示例:我想将所有双引号(“)替换为单引号('),然后代码将如下所示

var str= "\"Hello\""
var regex = new RegExp('"', 'g');
str = str.replace(regex, '\'');
console.log(str); // 'Hello'

#9楼

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

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

#10楼

您可以使用RegExp javasscript对象替换所有出现的任何字符串/字符。

这是代码,

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

var patt = new RegExp("\\.");

while(patt.test(mystring)){

  mystring  = mystring .replace(".","");

}

#11楼

@scripto更加简洁,没有prototype

function strReplaceAll(s, stringToFind, stringToReplace) {
    if (stringToFind === stringToReplace) return s;
    for (let index = s.indexOf(stringToFind); index != -1; index = s.indexOf(stringToFind))
        s = s.replace(stringToFind, stringToReplace);
    return s;
}

它是如何堆叠的: http : //jsperf.com/replace-vs-split-join-vs-replaceall/68


#12楼

String.prototype.replaceAll = function (needle, replacement) {
    return this.replace(new RegExp(needle, 'g'), replacement);
};

#13楼

mystring.replace(new RegExp('.', "g"), ' ');

#14楼

一种易于理解的解决方案:)

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

#15楼

/**
 * 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

### 回答1: JavaScript提供了replace()函数用于替换指定字符或字符串,它有两个参数:替换模式和替换值。 替换模式可以是一个正则表达式或者一个普通字符串。如果是字符串,则只会替换第一次出现的字符或字符串,如果是正则表达式,则可以替换所有符合条件的字符或字符串替换值可以是一个字符串或一个函数,如果是字符串,则直接替换,如果是函数,则需要在函数返回替换的值。 下面是一个例子,将字符串的所有"o"替换成"e": ``` let str = "hello, world!"; let newStr = str.replace(/o/g, "e"); console.log(newStr); //输出 "helle, werld!" ``` 在这个例子,/o/g是一个正则表达式,表示要全局替换字符串的"o";"e"是替换值,表示要将所有"o"替换成"e"。最后输出的newStr变量就是替换后的新字符串。 总之,使用JavaScriptreplace()函数可以方便地替换字符串的指定字符或字符串,是日常编程经常使用的技巧。 ### 回答2: JavaScript 作为一种常用的脚本语言,内置了许多字符串处理的方法,其就包括字符串替换字符串替换指的是把一个字符串的某一部分内容替换为另一个内容,通常会用到 replace() 方法。 replace() 方法接受两个参数,第一个参数是要替换字符串或正则表达式,第二个参数是替换的新字符串。如果想要替换所有匹配到的字符串,则需使用正则表达式,并加入 g 标志表示全局匹配。 例如,下面的代码会把字符串所有的“world”替换成“JavaScript”: ```javascript let str = "Hello, world! The world is big."; let newStr = str.replace(/world/g, "JavaScript"); console.log(newStr); // 输出: "Hello, JavaScript! The JavaScript is big." ``` 另外,replace() 方法还支持回调函数作为第二个参数,用于对每一个匹配到的字符串进行动态替换。 例如,下面的代码会把字符串所有的数字乘以2: ```javascript let str = "1 2 3 4 5"; let newStr = str.replace(/\d+/g, function(match) { return parseInt(match) * 2; }); console.log(newStr); // 输出: "2 4 6 8 10" ``` 除了 replace() 方法之外,JavaScript 还提供了其他字符串处理方法,如 substring()、substr()、slice() 等,根据需要选择使用即可。 ### 回答3: JavaScript是一种非常强大和流行的编程语言,它可以用来开发各种不同类型的应用程序和网站。其一个最基本的任务之一就是在字符串替换指定字符。在这篇文章,我们将学习如何在JavaScript处理字符串,并进行字符替换。 首先,让我们看一下JavaScript替换字符串的基本语法: ```JavaScript string.replace(searchValue, replaceValue) ``` 这里,我们将第一个参数称为“搜索值”,而第二个参数称为“替换值”。 当执行替换操作时,JavaScript将在字符串搜索所有出现的搜索值,并用替换替换它。如果一个搜索值出现了多次,JavaScrip也会将其全部替换掉。 例如,假设我们有一个字符串,其有几个“a”字符,我们想将它们全部替换为“x”,应该怎么做呢?我们可以使用以下代码: ```JavaScript let str = "It's a beautiful day."; let replacedStr = str.replace(/a/g, "x"); console.log(replacedStr); ``` 在这个例子,我们使用“/a/g”的正则表达式作为搜索值参数,这表示我们要搜索字符串的所有“a”字符。 然后,我们使用“x”作为替换值参数,JavaScript将查找字符串所有的“a”字符,并用“x”替换它们。 请注意,在正则表达式,我们使用了“g”标志,表示全局搜索。 如果我们想要不区分大小写地替换字符串的字符,我们可以像这样使用正则表达式: ```JavaScript let str = "JavaScript is the Best."; let replacedStr = str.replace(/best/i, "worst"); console.log(replacedStr); ``` 在这个例子,我们使用了“/best/i”的正则表达式,其“i”标志表示不区分大小写。 除了正则表达式,我们还可以直接将要搜索的字符串作为搜索值参数传递给replace()方法,这样就可以替换字符串出现的所有匹配项。例如: ```JavaScript let str = "Welcome to the world of web development."; let replacedStr = str.replace("development", "programming"); console.log(replacedStr); ``` 在这个例子,我们直接使用“development”作为搜索值参数。JavaScript将查找“development”字符串字符串出现的所有位置,并用“programming”替换它。 总之,在JavaScript替换字符串的方式多种多样。你可以使用正则表达式或直接字符串,同时可以进行大小写敏感和不敏感匹配。如果你需要在你的应用程序或网站完成字符串处理任务,JavaScript提供了许多灵活且高效的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值