在数组中删除带有javascript的词缀

removing affix with javascript in a array

本文关键字:javascript 数组 删除      更新时间:2023-09-26

如果我们想从这句话中删除词缀meanganmenangkandimenangkan,我们从哪里开始

affix_list = [
'me-an',
'me-kan,
'di-kan
]
string = 'meangan menangkan dimenangkan'

所以它会输出

output = [
'ang',
'nang'
'menang'
]

您可能需要使用正则表达式来进行这些替换。从您的affix_list开始,这应该起作用:

output = affix_list.reduce(function(str, affix) {
    var parts = affix.split("-");
    var regex = new RegExp("''b"+parts[0]+"(''S+)"+parts[1]+"''b", "g");
    return str.replace(regex, "$1")
}, string).split(" ");

您的regex es将如下所示:

/'bme('S+)an'b/g
/'bme('S+)kan'b/g
/'bdi('S+)kan'b/g

但请注意,您当然需要在me-an之前替换me-kan,否则在应用me-kan表达式之前,"menangkan"将变为nangk

您需要从Javascript正则表达式开始,遍历这些值,并相应地检索中间值。我会为你做第一个,你可以试试其他的:)

var re = /me('w+)an/;
var str = "meangan";  
var newstr = str.replace(re, "$1");  
console.log(newstr);
// outputs ang

参考:https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions