如何从字符串数组中删除字符串?

时间:2018-12-04 20:27:57

标签: javascript

基本上,我有一个字符串数组

func updateView(imageName: String, imageView: UIImageView, show: Bool)
    if show {
       let newMask = UIImageView()
       newMask.image = UIImage(named: imageName)
       newMask.frame = frame
       imageView.mask = newMask
    } else {
       imageView.mask = nil
    }
 }

我想知道如何使用该数组,如何才能从数组var array_strings = ['string1', 'string2', 'string3'] 中找到包含某物的字符串的每一段并将其删除。

例如,如果我有字符串array_strings

我希望它仅输出var hello = 'string1 Hello string2'并删除Hellostring1

3 个答案:

答案 0 :(得分:2)

遍历数组,并使用字符串replace方法从数组中删除字符串。我们通过regular expression构造函数将字符串转换为RegExp。这将允许多次替换以及在表达式中使用变量。

var array_strings = ['string1', 'string2', 'string3'],
  str = "string1 hello string2",

  printStr = (str, removables) => {
    for (let removable of removables) {
    let re_removable = new RegExp(removable,"g");
      str = str.replace(re_removable, "").trim();
    }
    return str;
  };

console.log(printStr(str, array_strings));

答案 1 :(得分:2)

一种可能性是join要由|删除的字符串数组,然后从中构造一个正则表达式,并用.replace '':< / p>

const array_strings = ['string1', 'string2', 'string3'];
const pattern = new RegExp(array_strings.join('|'), 'g');
const hello = 'string1 Hello string2';

console.log(hello.replace(pattern, ''));

如果您还想删除前导/尾随空格,请同时使用.trim()

答案 2 :(得分:0)

如果您的示例中仅包含单词而没有逗号/标点符号等,那么您也可以简单地分割字符串,然后通过Array.filter Array.includes>

const str = 'string1 Hello string2 there string3', 
      arr = ['string1', 'string2', 'string3'];

console.log(...str.split(' ').filter(x => !arr.includes(x)))

在没有复杂的句子/字符串数据的情况下,这是一种更简单的方法,而您需要通过String.replace等来RegEx