相关疑难解决方法(0)

用多个其他字符串替换多个字符串

我正在尝试用多个其他单词替换字符串中的多个单词.字符串是"我有一只猫,一只狗和一只山羊."

然而,这不会产生"我有一只狗,一只山羊和一只猫",而是产生"我有一只猫,一只猫和一只猫".是否可以在JavaScript中同时用多个其他字符串替换多个字符串,以便生成正确的结果?

var str = "I have a cat, a dog, and a goat.";
str = str.replace(/cat/gi, "dog");
str = str.replace(/dog/gi, "goat");
str = str.replace(/goat/gi, "cat");

//this produces "I have a cat, a cat, and a cat"
//but I wanted to produce the string "I have a dog, a goat, and a cat".
Run Code Online (Sandbox Code Playgroud)

javascript regex string replace node.js

183
推荐指数
6
解决办法
18万
查看次数

你如何映射替换Javascript中的字符类似于Perl中的'tr'函数?

我一直试图弄清楚如何将字符串中的一组字符映射到另一个类似于trPerl中的函数的集合.

我发现这个站点显示了JS和Perl中的等效函数,但遗憾的是没有tr等价.

trPerl中的(音译)函数将字符一对一映射,所以

     data =~ tr|\-_|+/|;
Run Code Online (Sandbox Code Playgroud)

会映射

     - => + and _ => /
Run Code Online (Sandbox Code Playgroud)

如何在JavaScript中有效地完成这项工作?

javascript perl transliteration character-encoding

35
推荐指数
3
解决办法
2万
查看次数

如何用更好的性能替换字符串中的大量单词?

最近,我写了一些代码来过滤字符串中的坏词.而且会有大量的词语被过滤掉.我的代码有效,但性能并不如预期的那么好.

下面的代码只是演示:

方法1:

let list = [ "omg", "bbq", "wth", "hello", "world" ];
let smallString = "wthhello123456worldomg789bbqomgomg";
for (let i = 0; i < list.length; i++) {
  smallString = smallString.replace(new RegExp(list[i], "g"), "***");
}
Run Code Online (Sandbox Code Playgroud)

方法2:

let list = [ "omg", "bbq", "wth", "hello", "world" ];
let smallString = "wthhello123456worldomg789bbqomgomg";
for (let i = 0; i < list.length; i++) {
  smallString = smallString.split(list[i]).join("***");
}
Run Code Online (Sandbox Code Playgroud)

我还使用jsperf进行性能测试,与split和join或replace进行比较:https://jsperf.com/split-join-vs-replace-dicky

测试结果表明,在更换小字符串时,拆分和连接比替换更快.但是当替换大字符串时它会很慢.(我注意到结果有时会改变)

我真正想要的是什么

我实际上需要一个稳定的功能来更换性能更好的单词.有什么建议吗?它可以是不使用替换或拆分和连接的另一种方法.非常感谢

javascript performance

6
推荐指数
1
解决办法
93
查看次数

如何替换字符串中的多个字符?

我想用以下逻辑创建一个正则表达式:1.,如果string包含T用空格2替换它,如果string包含ZremoveZ

我已经写了两个正则表达式,但我无法将它们组合起来:

string.replace(/\T/g,' ') && string.replace(/\Z/g,'');
Run Code Online (Sandbox Code Playgroud)

编辑:我希望正则表达式代码更短

javascript regex

5
推荐指数
2
解决办法
3万
查看次数

使用数组元素替换多个出现的字符串

我在关联数组中有几个字符串:

    var arr = {
        '============================================': '---------',
        '++++++++++++++++++++++++++++++++++++++++++++': '---------',
        '--------------------------------------------': '---------'
    };
Run Code Online (Sandbox Code Playgroud)

我想用相应的值替换每个键的出现次数.我想出的是:

    for (var i in arr)
    {
        strX = str.replace(i, arr[i]);

        console.log('arr[\''+i+'\'] is ' + arr[i] + ': ' + strX);
    }
Run Code Online (Sandbox Code Playgroud)

这有效,但仅限于首次出现.如果我将正则表达式更改为/i/g,则代码不起作用.

for (var i in arr)
{
    strX = str.replace(/i/g, arr[i]);

    console.log('arr[\''+i+'\'] is ' + arr[i] + ': ' + strX);
}
Run Code Online (Sandbox Code Playgroud)

你们知道如何解决这个问题吗?

javascript arrays string

3
推荐指数
1
解决办法
6234
查看次数

如何替换JavaScript正则表达式中的冒号和星特殊字符

我试图用空字符串("")替换星号(*)和冒号(:),字符串可以如下:

或者: Registration No: already exists*

要么: *Registration No: already exists

所以,我不希望(*)以及(:)和输出应该Registration No already exists如何解决它.

尝试如下:

var txt = str.replace(/:\*/ig,"");
Run Code Online (Sandbox Code Playgroud)

请帮助我,并提前感谢

javascript regex

1
推荐指数
1
解决办法
76
查看次数

Javascript字符串替换不在循环内工作

字符串替换不适用于javascript

我的字符串='购买T恤以上6折优惠.1200' ;
输出字符串='get-flat-50-percent-on-tees-purchase-above-rs.-1200';

这是我的js代码.

 var json, xhr = new XMLHttpRequest();
xhr.open("GET","http://www.exmaple.com/api/v1.0/deal/deallimit/6/61f4279fb0cb4d4899810bef06539d06e349",true);   
xhr.onload=function() {
                var response=xhr.responseText;
                var resultValue = JSON.parse(response);
                var dealArray = resultValue['All deals'];
                console.log(dealArray.length);
                var i;
                for (i = 0; i < dealArray.length; i++)
                {

                  var key1 = 749;
                  var key2 = 29;
                  var orgProID = (dealArray[i]['productid']+dealArray[i]['productkey'])/key2;
                  var cat = dealArray[i]['categoryname'].toLowerCase();
                  var catReplace = cat.replace(" ","-");

                  var pro1 = dealArray[i]['productname'].toLowerCase();
                  var proReplace = pro1.replace('%','-percent');
                  var proReplace1 = proReplace.replace(" ","-");

                  console.log(catReplace+"/"+proReplace1);

                  if (dealArray[i]['price'] !=0) {
                     document.getElementById('appendDeals').innerHTML +="<tr><td class='dealName'>"+dealArray[i]['productname']+ " …
Run Code Online (Sandbox Code Playgroud)

javascript

0
推荐指数
1
解决办法
916
查看次数

如何在Javascript中删除字符串中的'a'和'c'的所有实例?

如何删除字符串中两个不同字母的所有实例?

例如,我想从'abcabc'中删除'a'和'c',使其变为'bb'.

我知道我做不到'abcabc'.replace(/a/g, '').replace(/c/g, '')但是还有另一个我可以使用的regEx,所以我不需要链接replace功能吗?

谢谢!

javascript regex

-3
推荐指数
1
解决办法
43
查看次数