我有以下格式的字符串:
apple|mango|banana|pineapple
(or)
mango|banana|pineapple
(or)
banana|pineapple
我想从这个字符串中删除匹配的元素 - 比如匹配的元素是芒果。
我需要字符串:apple|banana|pineapple
如果是苹果:
mango|banana|pineapple.
我该怎么做,如果我使用正则表达式,匹配元素我需要删除它和管道之前,这里匹配元素是动态的。请帮忙。
答案 0 :(得分:0)
您可以将字符串拆分为数组,删除该项目,然后再次加入。
var s = 'apple|mango|banana|pineapple';
var itemToRemove = 'apple';
var items = s.split('|');
var itemToRemoveIndex = $.inArray(itemToRemove, items);
if (itemToRemoveIndex != -1) {
items.splice(itemToRemoveIndex, 1);
s = items.join('|');
}
答案 1 :(得分:0)
您好像正在寻找String.split()
Javascript方法。
var fruit = "apple|mango|banana|pineapple";
var fruitArr = fruit.split("|"); // ["apple","mango","banana","pineapple"]
然后,您可以使用Array.indexOf()
和Array.splice()
方法将其删除。 这将仅删除找到的第一个实例,因为indexOf
在找到匹配项后中止。
fruitArr.splice(fruitArr.indexOf("mango"), 1);
// Returns ["mango"] but fruitArr has been modified to ["apple","banana","pineapple"]
fruitArr
在使用splice
修改后,可以像这样重新合并:
fruitArr.join("|"); // "apple|banana|pineapple"
请参阅Ulugbek关于更多故障安全版本的答案 - 但要注意它取决于jQuery。
答案 2 :(得分:0)
您可以尝试以下简单的替换方法:
youString.replace(/\|*mango/g, '')
' *'在' |'之后如果它在字符串的开头就会捕获芒果。