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

affix_list = [
'me-an',
'me-kan,
'di-kan
]

string = 'meangan menangkan dimenangkan'


所以它将输出

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

最佳答案

您可能要使用regular expressions进行这些替换。从您的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-kan之前替换me-an,否则在应用"menangkan"表达式之前,nangk将变为me-kan

关于javascript - 用数组中的javascript删除词缀,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11458700/

10-08 21:45