如果与数组中一项匹配的值如何分割字符串?我从选定的字段中获取此值:
elegant-themes-line-icons-map-pin
我想分裂:
['elegant-themes-line-icons', 'map-pin']
或['font-awesome', 'removed']
我在数组中有一些战线清单:
['elegant-themes-line-icons', 'font-awesome', 'simple-line-icons']
,该值应始终为fontname-iconname
,我需要像上面的代码一样拆分该值,我喜欢这样的条件:
function onChange(value) {
// example the selected value is 'font-awesome-facebook-alt'
if ( value has font string like font-awesome ) {
var icons = ['font-awesome', 'facebook-alt'];
}
}
答案 0 :(得分:0)
您可以在右侧找到正确的起始字符串和切片。
var list = ['elegant-themes-line-icons', 'font-awesome', 'simple-line-icons'],
values = ['elegant-themes-line-icons-map-pin', 'font-awesome-removed', 'foo-bar-baz'],
result = values.map(s => {
var left = list.find(l => s.startsWith(l)) || '',
right = left ? s.slice(left.length + 1) : s;
return [left, right];
});
console.log(result);