如果逗号存在,则JavaScript替换字符串和逗号,否则仅替换字符串

时间:2017-08-09 10:24:19

标签: javascript

我有一个字符串:

var string = "string1,string2,string3,string4";

我必须从字符串中替换给定的值。所以字符串例如如下:

var replaced = "string1,string3,string4"; // `string2,` is replaced from the string

我试过这样做:

var valueToReplace = "string2";
var replace = string.replace(',' + string2 + ',', ''); 

然后输出是:

string1string3,string4

或者,如果我必须替换string4,则replace函数不会替换任何内容,因为逗号不存在。

如果逗号存在,如何替换值和逗号? 如果逗号不存在,则只替换string

7 个答案:

答案 0 :(得分:3)

现代浏览器

var result = string.split(',').filter( s => s !== 'string2').join(',');

适用于旧版浏览器

var result = string.split(',').filter( function(s){ return s !== 'string2'}).join(',');

首先将字符串拆分为数组,例如['string1', 'string2', 'string3', 'string4' ]

然后使用filter过滤掉不需要的项目。所以你留下了['string1', 'string3', 'string4' ]

join(',')使用,分隔符将您的数组转换为字符串。

答案 1 :(得分:2)

用逗号分隔字符串。 您将所有字符串作为数组并删除所需的项目。 用逗号加入吧。

var string = "string1,string2,string3,string4";
var valueToReplace = "string2";
var parts = string.split(",");
parts.splice(parts.indexOf(valueToReplace), 1);
var result = parts.join(",");
console.log(result);

答案 2 :(得分:1)

您只需要替换两个逗号中的一个而不是两个,所以:

var replace = string.replace(string2 + ',', ''); 

或者:

var replace = string.replace(',' + string2, ''); 

您可以通过以下方式检查逗号:

if (string.indexOf(',' + string2)>-1) {
    var replace = string.replace(',' + string2, '');
else if (string.indexOf(string2 + ',', '')>-1) {
    var replace = string.replace(string2 + ',', '');
} else { var replace = string.replace(string2,''); }

答案 3 :(得分:0)

您应该只替换1个逗号并传递正确的变量以替换

等方法

var string = "string1,string2,string3,string4";
var valueToReplace = "string2";
var replaced = string.replace(valueToReplace + ',', ''); 
alert(replaced);

答案 4 :(得分:0)

str = "string1,string2,string3"
tmp = []
match = "string3"
str.split(',').forEach(e=>{
    if(e != match)
        tmp.push(e)
})
console.log(tmp.join(','))
好吧,我有你。你走了。

答案 5 :(得分:0)

您可以使用字符串函数replace();

例如:

var string = "string1,string2,string3,string4";
var valueToReplace = ",string2";
var replaced = string.replace(valueToReplace,''); 

或者如果你想在子字符串中划分它,你可以使用substr()函数;

var string = "string1,string2,string3,string4";
firstComma = string.indexOf(',')
var replaced = string.substr(0,string.indexOf(','));
secondComma = string.indexOf(',', firstComma + 1)
replaced += string.substr(secondComma , string.length);

您可以根据您选择的逗号来调整长度,方法是添加或减去1。

答案 6 :(得分:0)

您的问题是 - 如果逗号存在,如何替换值和逗号?

所以我假设string也包含空格。

所以问题是 - 我们如何在string

中检测到逗号的存在

简单,在Javascript条件下使用 -



var string = "string1 string2, string3, string4";
var stringToReplace = "string2";
var result;

if (string.search(stringToReplace + "[\,]") === -1) {
  result = string.replace(stringToReplace,'');
} else {
  result = string.replace(stringToReplace + ',','');
}

document.getElementById("result").innerHTML = result;

<p id="result"></p>
&#13;
&#13;
&#13;