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

Javascript字符串替换在循环内不起作用,javascript,Javascript,字符串替换在javascript中不起作用 我的字符串=‘购买1200卢比以上的T恤可享受五折优惠’; 输出字符串='get-flat-50-off-on-tees-purchase-over-rs-1200' 这是我的js代码。 var json, xhr = new XMLHttpRequest(); xhr.open("GET","http://www.exmaple.com/api/v1.0/deal/deallimit/6/61f4279fb0cb4d4899810bef06539

字符串替换在javascript中不起作用

我的字符串=‘购买1200卢比以上的T恤可享受五折优惠’;
输出字符串='get-flat-50-off-on-tees-purchase-over-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']+ " @ Rs."+dealArray[i]['price']+"</td><td class='buyDeal'>BUY</td></tr>";
                  }
                  else{
                     document.getElementById('appendDeals').innerHTML +="<tr><td class='dealName'>"+dealArray[i]['productname']+"</td><td class='buyDeal'>BUY</td></tr>";
                  }
                }
            }            
    xhr.send(null); 
并非所有位置都被“-”替换


如何做到这一点

您需要在全局意义上使用
replace
,例如

var proReplace = pro1.replace(/%/g,'-percent');
var proReplace1 = proReplace.replace(/ /g,'-');

看一看。

您需要在全局意义上使用
替换
,例如

var proReplace = pro1.replace(/%/g,'-percent');
var proReplace1 = proReplace.replace(/ /g,'-');

看看。

proReplace.replace(“,“-”);仅适用于第一次出现的子字符串。看看这里

proReplace.replace(“,“-”);仅适用于第一次出现的子字符串。请看这里

您的代码不工作,因为
.replace()
不会在字符串中全局执行替换。您需要设置
g
标志以使其全局工作

按照以下简单算法将字符串转换为所需的格式:

  • 使整个字符串
    .toLowerCase()
  • .replace()
    %
    替换为
    -percent
  • .replace()
    将空格全局替换为
    -
  • 工作代码片段:

    var myString='购买1200卢比以上的T恤可享受五折优惠';
    //在此处应用算法:
    var outputString=myString.toLowerCase().replace('%','-percent').replace(//g,“-”);
    
    警报(输出字符串)您的代码不工作,因为
    .replace()
    不会在字符串中全局执行替换。您需要设置
    g
    标志以使其全局工作

    按照以下简单算法将字符串转换为所需的格式:

  • 使整个字符串
    .toLowerCase()
  • .replace()
    %
    替换为
    -percent
  • .replace()
    将空格全局替换为
    -
  • 工作代码片段:

    var myString='购买1200卢比以上的T恤可享受五折优惠';
    //在此处应用算法:
    var outputString=myString.toLowerCase().replace('%','-percent').replace(//g,“-”);
    
    警报(输出字符串)您的日志不包含“/”是否确实发布了正确的日志?请查找下面的答案,如果它解决了您的问题,请将其中一个标记为已接受。您的日志不包含“/”是否确实发布了正确的日志?请查找下面的答案,如果它解决了您的问题,请将其中一个标记为已接受。