如何用字符串数组替换句子的一部分?
How to replace parts of a sentence with array of strings?
我有这句话:
span class="searchmatch" Program /span, programme, programmer, or span class="searchmatch" programming /span may refer to: span class="searchmatch" Program /span management, the process of managing several related projects Time management Program
我想删除所有标签,这样它就会像:
Program, programme, programmer, or programming may refer to: management, the process of managing several related projects Time management Program.
所以我把句子分成这样的数组:
const arrayContent = result.snippet.split(' ');
并制作了一组我想删除的单词,如下所示:
const removedText = ['span class="searchmatch"', '/span'];
是否有接收两个数组的函数(就像arrayContent和removedText),搜索第一个数组中是否有与第二个数组中的字符串匹配的字符串,如果是,则将其替换为空字符串?
我会像这样使用正则表达式:
const toRemove = ['span class="searchmatch"', '/span'];
// create regex like "a|b|c|..." according to what the array contains
const regex = new RegExp(toRemove.join("|"), 'gi');
const oldString = `span class="searchmatch" Program /span, programme, programmer, or span class="searchmatch" programming /span may refer to: span class="searchmatch" Program /span management, the process of managing several related projects Time management Program`
const newString = oldString.replaceAll(regex, '');
console.log(newString);
这样的函数呢:
const removeStrings: string = (text: string, array: string[]) => {
let resultText = Object.assign({}, text);
array.forEach(item => {
if (resultText.includes(item)) {
resultText = resultText.replaceAll(item, '');
}
});
return resultText;
}
或者两个数组:
const removeStrings: string[] = (array1: string[], array2: string[]) => {
let resultArr = Object.assign({}, array1);
resultArr = resultArr.map(item1 =>
array.forEach(item => {
if (item1 === item)) {
return '';
}
});
return item1;
});
return resultArr;
}
我有这句话:
span class="searchmatch" Program /span, programme, programmer, or span class="searchmatch" programming /span may refer to: span class="searchmatch" Program /span management, the process of managing several related projects Time management Program
我想删除所有标签,这样它就会像:
Program, programme, programmer, or programming may refer to: management, the process of managing several related projects Time management Program.
所以我把句子分成这样的数组:
const arrayContent = result.snippet.split(' ');
并制作了一组我想删除的单词,如下所示:
const removedText = ['span class="searchmatch"', '/span'];
是否有接收两个数组的函数(就像arrayContent和removedText),搜索第一个数组中是否有与第二个数组中的字符串匹配的字符串,如果是,则将其替换为空字符串?
我会像这样使用正则表达式:
const toRemove = ['span class="searchmatch"', '/span'];
// create regex like "a|b|c|..." according to what the array contains
const regex = new RegExp(toRemove.join("|"), 'gi');
const oldString = `span class="searchmatch" Program /span, programme, programmer, or span class="searchmatch" programming /span may refer to: span class="searchmatch" Program /span management, the process of managing several related projects Time management Program`
const newString = oldString.replaceAll(regex, '');
console.log(newString);
这样的函数呢:
const removeStrings: string = (text: string, array: string[]) => {
let resultText = Object.assign({}, text);
array.forEach(item => {
if (resultText.includes(item)) {
resultText = resultText.replaceAll(item, '');
}
});
return resultText;
}
或者两个数组:
const removeStrings: string[] = (array1: string[], array2: string[]) => {
let resultArr = Object.assign({}, array1);
resultArr = resultArr.map(item1 =>
array.forEach(item => {
if (item1 === item)) {
return '';
}
});
return item1;
});
return resultArr;
}