我有一个字符串:
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
。
答案 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;