基本上,我有一个字符串数组
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'
并删除Hello
和string1
。
答案 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
。