我想搜索邮件的内容,并将某些单词替换为与具有翻译的单词匹配的单词。
示例输入: “我和我的bae一起拍了一个自拍。 YOLO!
过滤后的输出: “我和我所爱的人在旁边拍了一张自画像。 carpe diem!'
我的代码正在翻译单词,但只有没有额外标点符号的单词附加到像'。'这样的单词上。和'!'。即它转换为:'我用我的bae拍了一幅自画像。 YOLO!
我从单词的对象及其翻译开始:
let blacklist = {
'selfie': 'self-portrait',
'yummers': 'delicious',
'outchea': 'are out here',
'bruh': 'wow',
'doge': 'pug',
'cilantro': 'soap',
'bae': 'loved one',
'swag': 'style',
'yolo': 'carpe diem'
};
这是我翻译单词的代码:
const message = 'I took a selfie with my bae next to a tardis. yolo!'
translate(message) => {
let wordArray = message.split(' ');
for(let i = 0; i < wordArray.length; i++) {
if(blacklist.hasOwnProperty(wordArray[i])){
wordArray[i] = blacklist[wordArray[i]];
}
}
console.log(wordArray.join(' '));
};
答案 0 :(得分:1)
我建议你采用一种更简单的方法。使用RegExp
对象,您不必关心标点符号的相同性。
let blacklist = {
'selfie': 'self-portrait',
'yummers': 'delicious',
'outchea': 'are out here',
'bruh': 'wow',
'doge': 'pug',
'cilantro': 'soap',
'bae': 'loved one',
'swag': 'style',
'yolo': 'carpe diem'
};
const message = 'I took a selfie with my bae next to a tardis. yolo!';
function translate(message) {
return message.replace(/selfie|yummers|outchea|bruh|doge|cilantro|bae|swag|yolo/g, match => blacklist[match]);
};
console.log(translate(message));
&#13;
答案 1 :(得分:1)
查看此片段!
createTransporter
答案 2 :(得分:0)
您可以使用.split(/\b/)
拆分字边界上的字符串
以下是一个例子:
var blacklist = {
'selfie': 'self-portrait',
'yummers': 'delicious',
'outchea': 'are out here',
'bruh': 'wow',
'doge': 'pug',
'cilantro': 'soap',
'bae': 'loved one',
'swag': 'style',
'yolo': 'carpe diem'
};
var message = 'I took a selfie with my bae next to a tardis. yolo!'
function translate(message){
return message.split(/\b/).map(w => (blacklist[w] || w)).join('');
};
console.log(translate(message));
&#13;